PHP头条
热点:

新闻分页下标生成-PHP源码


后台生成装有下标页码的数组,到网页上打印出来(可以定义下标页码的长度)

1. [代码]后台页码下标生成

/**
     *分页下标生成
     * 
     * @param $page    页码
     * @param $num     多少行为一页
     * @param $rows    数据总行数
     * @param $length  下标最大显示个数
     * @return array   返回数组
     */
    public function PageDate($page, $num , $rows , $length){
        //初始化数据
        $MaxPage = 0;                //最大页码
        $MinPage = 0;                //最小页码
        $ServerPage = 0;             //下拉框中选中页码
        $PageData = array();         //全部页码数组(供下拉选择框使用)
        $PageShowData = array();     //显示的下标数组
        
        $page = intval($page);      

        if($rows == 0){
            return $data = array(
                'page' => $page,
                'MaxPage' => $MaxPage,
                'MinPage' => $MinPage,
                'ServerPage' => $ServerPage,
                'PageData' => $PageData,
                'PageShowData' => $PageShowData
            );
        }

        //得到最大分页和最小分页
        $MaxPage = intval($rows / $num);
        $double = $rows % $num;
        if($double > 0.000000001)
        {
            $MaxPage += 1;
        }
        $MinPage = 1;
        $ServerPage = 1;
        //得到页码的全部项目
        for($i = 1; $i <= $MaxPage; $i++ ){
            $PageData[$i] = $i;
        }
        //对页码进行正确性改正
        if($page < $MinPage){
            $page = 1;
        }

        if($page > $MaxPage){
            $page = 1;
        }
        /*生成显示的页码标签*/
            //生成左侧的代码快
            if($page == $MinPage){
                $PageShowData[1] = $page;
            }
            if($page > $MinPage){
                $PageShowData[1] = $MinPage;
//                $PageShowData[2] = $page - 1; // <<
                $PageShowData[2] = '<<'; // <<
                if($page -2 > $MinPage ){
                    $PageShowData[3] = $page - 2;
                    $PageShowData[4] = $page - 1;
                }elseif($page -2 == $MinPage){
                    $PageShowData[3] = $page - 1;
                }
                //确定选中的页码代码快
                $PageShowData[count($PageShowData) + 1] = $page;
            }
        $COUNT = count($PageShowData) + 1;
        //生成右侧的代码块
            if($page == $MaxPage){
                return $data = array(
                    'page' => $page,
                    'MaxPage' => $MaxPage,
                    'MinPage' => $MinPage,
                    'ServerPage' => $ServerPage,
                    'PageData' => $PageData,
                    'PageShowData' => $PageShowData
                );
            }
            if($page < $MaxPage) {
                if($MaxPage - $page >= 2){
                    $j = 1;
                    for($i = $COUNT; $i <= $length ; $i++){
                        $PageShowData[$i] = $page + $j;
                        $j ++;
                        if($PageShowData[$i] == $MaxPage -1){
                            break;
                        }
                    }
                }

                $COUNT = count($PageShowData) + 1;
//                $PageShowData[$COUNT] = $page + 1; //>>
                $PageShowData[$COUNT] = '>>';
                $PageShowData[$COUNT + 1] = $MaxPage;

                //得到选中的参数
                $ServerPage = $PageShowData[$COUNT-1] + 1;
                if($ServerPage > $MaxPage){
                    $ServerPage = 1;
                }

                return $data = array(
                    'page' => $page,
                    'MaxPage' => $MaxPage,
                    'MinPage' => $MinPage,
                    'ServerPage' => $ServerPage,
                    'PageData' => $PageData,
                    'PageShowData' => $PageShowData
                );
            }

    }

2. [图片] 截图1453701874.png


www.phpzy.comtrue/phpyy/49396.htmlTechArticle新闻分页下标生成-PHP源码 后台生成装有下标页码的数组,到网页上打印出来(可以定义下标页码的长度) 1. [代码] 后台页码下标生成 /** *分页下标生成 * * @param $page 页码 * @param $num 多少...

相关文章

PHP之友评论

今天推荐