本节内容:
php翻页链接列表函数
例子:
复制代码 代码示例:
/**
* 生成页码列表
* @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
* @site www.jbxue.com
*/
public static function getPageListLink($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))
$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 .= ''.$i.'';
else