php生成翻页链接列表的函数举例

发布时间:2020-08-27编辑:脚本学堂
本文分享一例php代码,用于生成翻页链接列表函数,用于学习php的分布原理很不错,有需要的朋友可以参考借鉴下,希望对大家有一定的帮助。

本节内容:
php翻页链接列表函数

例子:
 

复制代码 代码示例:
<?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.jb200.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))<$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; 

 

您可能感兴趣的文章:
PHP分页代码详解(附实例)
分享:一例PHP翻页(分页)类的实例代码
php mysql分页类与调用实例
php mysql分页类(php新手入门)
php与ajax无刷新分页的实现代码(兼容多浏览器)
一个简单的php分页类(入门)
带多种分页方式的php分页类
一个好用的php分页类
你不可错过的一个php分页类(mysql)
一个不错的php分页类的代码
一个分页函数:显示“上一页 下一页”等
有关php分页显示的制作方法
一个实用的php分页类
一个快速好用的php分页类