php 分页函数

在一个网站中,分布必不可少,如何巧妙的组织一个可控性强的分页函数显得犹为重要,前面在模型类中已经把它交给了函数multipage,这里,对它进行完善

function multipage($page, $page_num, $url, $isajax = 0) {
    
    $count = count($url);
    if ($isajax) {
        $css = " class='__ajax' action=\\".__page-box\\" ";
    } else {
        $css = '';
    }
    //html开始
    $html = '<ul class="am-pagination pagination">';

    //构造上一页
    if ($page == 1) {
        $html .= "<li class='am-active active'><a href='javascript:;>< </a></li>";
    }else {
        $pre = $page - 1;
        $url[$count] = $pre;
        $html .= "<li><a $css title=\\"上一页\\" href='" . implode('.', $url) . "'><</a></li>";
    }
    //构造第一页
    if ($page == 1) {
        $html .= "<li class='am-active active'><a href='javascript:;'>1</a></li>";
    } else {
        $url[$count] = 1;
        $html .= "<li><a $css href='" . implode('.', $url) . "'>1</a></li>";
    }
    
    //构造显示中间的页码

    if (1) {
        $arr = range($page-1, $page + 2, 1);
    } else {
        $arr = range(2, 3, 1);
        $tmp1 = array_merge(range($page - 2, $page + 2, 1) , range($page_num - 2, $page_num + 1, 1));
        $arr = array_unique(array_merge($arr, $tmpl));
    }
    

    $j = 1;
    foreach ($arr as $i) {
        if ($page_num < $i || $i < 2) {
            continue;
        }

        if ($j > 0 and $i - $j > 1) {
            $html .= "<li><a class='nolink'>...</a></li>";
        }

        if ($page == $i) {
            $html .= "<li class='am-active active'><a href='javascript:;'>$i</a></li>";
        } else {
            $url[$count] = $i;
            $html .= "<li><a $css href='" . implode('.', $url) . "'>$i</a></li>";
        }
        $j = $i;
    }

    if ($page_num - $i > 1) {
        $html .= "<li><a class='nolink'>...</a></li>";
        $url[$count] = $page_num;
        $html .= "<li><a href='" . implode('.', $url) . "'>$page_num</a></li>";
    } elseif ($page_num - $i == 1) {
        $url[$count] = $page_num;
        $html .= "<li><a $css href='" . implode('.', $url) . "'>$page_num</a></li>";
    }

    if ($page == $page_num) {
        $html .= "<li class='am-active active'><a href='javascript:;'>></a></li>";
    } else {
        $next = $page + 1;
        $url[$count] = $next;
        $html .= "<li><a $css href='" . implode('.', $url) . "' title='下一页'>></a></li>";
    }
    $html .= "</ul>";

    echo $html;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,368评论 25 708
  • 01 今天吃午饭的时候,邻居来窜门,无意间聊起了他近期看到的一则新闻:一个25岁的女孩被查出患有胃癌,晚期,她的男...
    日日要加油阅读 1,393评论 3 25
  • 又是星期天,大清早起来到现在天一直阴沉沉的,记着每一个可以全部度过的周末的星期天天气一直是这样.不会下雨不会刮风,...
    逆袭的刷新阅读 288评论 0 1
  • 2016年年末给自己定下了2017年要徒步一次的小目标,这个小目标在上个周末4月16号得以实现,特以此记。 徒步穿...
    小熊猫在成长阅读 12,011评论 0 3