`
yaasshole
  • 浏览: 666926 次
文章分类
社区版块
存档分类
最新评论

php生成翻页链接列表函数

 
阅读更多

/**
* 生成页码列表
*
* @author qifei
* @param int $element_total_count 元素总数
* @param int $current_page 当前页
* @param int $per_page_elem_count 每页元素数
* @param int $show_page_num 列表显示的页码数
* @param string $up_down_class 上下翻页样式
* @param string $num_class 当前页页码数字样式
* @param string $href 页面链接
* @param string $page_symbol 传递页码数的链接参数
* @return string
*/
function get_page_link_list($element_total_count,$current_page=1,$per_page_elem_count=10,$show_page_num=10,$up_down_class,$num_class,$href,$page_symbol='p')
{
if(empty($href))
{
//自动取得剔除页码参数的页面链接
$page_name = basename($_SERVER['PHP_SELF']);
$params = $_SERVER['QUERY_STRING'];
$params_str = '';
if(!empty($params))
{
$params = str_replace('&', '&', $params);
$params_array = explode('&', $params);
foreach($params_array as $param)
{
if(!empty($param))
{
$index = strpos($param, '=');
if($index)
{
$key = substr($param, 0, $index);
if($key && $key != $page_symbol)
$params_str .= $param . '&';
}
}
}
}
if(!empty($params_str))
$href = $page_name . '?' . $params_str;
else
$href = $page_name;

$href = rtrim($href,'&');
}

$prefix = strpos($href,"?") ? "&" : "?";
$prefix .= $page_symbol;

$page_total_count = ceil($element_total_count/$per_page_elem_count);

if(intval($element_total_count)< 1 || !isset($element_total_count))
{
return '';
}

if($element_total_count <= $per_page_elem_count)
return '';

if($current_page>$page_total_count)
$current_page = 1;

if(strpos($href,"#"))
{
$label = substr($href,strpos($href,"#"));
$href = substr($href,0,strpos($href,"#"));
}

/* 生成页码 */
if($current_page > ceil($show_page_num/2))
{
$start = $current_page - ceil($show_page_num/2);
$end = (($current_page+ceil($show_page_num/2))<$page_total_count) ?
$current_page+ceil($show_page_num/2)-1 : $page_total_count;
}
else
{
$start = 1;
$end = ($show_page_num>$page_total_count) ? $page_total_count : $show_page_num;
}

if(!empty($num_class))
$num_class_str = ' class="'.$num_class.'"';
else
$num_class_str = '';

$page_num_string = '';

for($i=$start;$i<=$end;$i++)
{
if(intval($i) == intval($current_page))
$page_num_string .= '<a'.$num_class_str.'>'.$i.'</a>';
else
$page_num_string .= '<a href="'.$href.$prefix.'='.$i.$label.'">'.$i.'</a>';
}

/* 上下翻页 */
$prev_page = (intval($current_page-1)>0)?intval($current_page-1):0;
$next_page = (intval($current_page)<$page_total_count) ? intval($current_page+1) : 0;

if(!empty($up_down_class))
$up_down_class_str = ' class="'.$up_down_class.'"';
else
$up_down_class_str = '';

$page_up_string = '';

if(intval($prev_page) > 0)
$page_up_string = '<a href="'.$href.$prefix.'='.$prev_page.$label.'"'.$up_down_class_str.'>上一页</a>';
else
$page_up_string = '<a'.$up_down_class_str.'>上一页</a>';

$page_down_string = '';

if(intval($next_page) > 0)
$page_down_string .= '<a href="'.$href.$prefix.'='.$next_page.$label.'"'.$up_down_class_str.'>下一页</a>';
else
$page_down_string .= '<a'.$up_down_class_str.'>下一页</a>';

/* 返回结果 */
return $page_up_string . $page_num_string . $page_down_string;
}

分享到:
评论

相关推荐

    风越.net代码生成器 v3.5

    风越.net代码生成器 [FireCode Creator] 是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层...

    风越asp代码生成器 V3.5

    《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层...

    风越ASP代码生成器2.8

    《风越ASP代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三...

    PHP分页技术demo详解

    通过简单地例子解释php的分页原理,demo中附带分页链接生成函数,而且通过参数可以选择不同样式的分页链接

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    《风越.Net代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx两种代码框架及多个...

    风越ASP代码生成器FireAspCreatorv2.9.rar

    《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架,基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索页面。通过界面模板与代码模板管理功能,可自定义...

    风越.net代码生成器v2.9

    《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层...

    PHP程序开发范例宝典III

    实例187 通过mssql_connect()函数连接SQL Server数据库 293 实例188 通过ADO方式实现指定时间段的信息检索 294 实例189 通过函数实现商品信息的检索 296 实例190 通过ADO方式实现输入页码跳转到指定页 297 ...

    Discuz! X2 R20120628 简体UTF-8.zip

    FIX 修正搜索接口错误调用了implode()函数问题 FIX 好友申请附言问题 FIX 前台管理中已经审核通过文章,后台还是提示审核的问题 FIX QQ互联暴露匿名帖用户信息的问题 FIX 专题模块可使用...

    WP主题:HotNewspro 2.72

    ■ 如果启用主题后首页只显示导航菜单及一个标题,说明你的主机不支持主题文字截断函数mb_strimwidth,最有可能的原因是,主机空间缺少mb_string extension(Linux主机)及php_mbstring.dll(WIN主机)扩展服务,...

    ExtAspNet_v2.3.2_dll

    -GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, ...

Global site tag (gtag.js) - Google Analytics