首页 > php教程 > php手册 > 正文

分页函数,自动识别链接追加跳转参数

php中文网
发布: 2016-06-07 11:37:27
原创
1830人浏览过

TP中分页函数默认会将GET链接转化,所以有一些汉字在传值时会出错,特此写出以下函数,不改变链接模式,追加跳转参数的方式
/*
 *    数据分页
 *    参数 $count数据条数 $row 调用条数
 *    返回值
 *    $array[limit] sql坐标
 *    $array['pages'] 分页链接坐标
 */
function page($count,$row){
    if(!$count){return '';}//空数据将跳出
    $url     = $_SERVER["REQUEST_URI"]; //读取链接
    $page     = $_GET['page']?$_GET['page']:1; //读取分页坐标
    $acount = $count; //数据条数
    $pcount = ceil($acount/$row); //分页数
    $url     = $_GET['page']?str_replace(array('/page/'.$_GET['page'],'&page='.$_GET['page']),'',$url):$url; //去除page参数
    $limit  = ($page-1)*$row.','.$row; //limit调用
    $pagetpl= '

[info]
 
     [first] [link] [end] 
'; //链接坐标模板
    
    //链接模板
    if(strstr($url,'&')||strstr($url,'=')){
        $url = $url.'&page=[url]';
    }elseif(substr($url,-5)=='.html'){
        $url = substr($url,0,-5).'/page/[url].html';
    }else{
        $url = $url.'/page/[url]';
    }
    
    //信息简介
    $info = '共 '.$acount.' 条信息 '.$page.'/'.$pcount.' 页';
    
    //第一页
    $first = ($page!=1)?'
  • 第一页
  • ':'';
        
        //最后一页
        $end = ($page!=$pcount)?'
  • 最后一页
  • ':'';
        
        //上一页
        $prev = ($page-1)     $prev = $prev?'
  • 上一页
  • ':$prev;
        
        //下一页
        $next = ($page+1)>$pcount?'':$page+1;
        $next = $next?'
  • 下一页
  • ':$next;
        
        //链接坐标
        $pagelist = '';
        for($i =1;$i         if($i == $page){
                $pagelist .= "
  • $i
  • ";
            }else{
                $pagelist .= "
  • $i
  • ";
            }
        }
        $pagelist = $prev.$pagelist.$next;
        $pagelist = ($pcount>1)?$pagelist:'';
        $show = str_replace('[info]',$info,$pagetpl);
        $show = str_replace('[first]',$first,$show);
        $show = str_replace('[link]',$pagelist,$show);
        $show = str_replace('[end]',$end,$show);
        
        $r['pages'] = $show;
        $r['limit'] = $limit;
        return $r;
    }调用方法 TP框架$M = M('article');
    $page = page($M->where($w)->count(),25);
    $list = $M->where($w)->order('wd_px desc,wd_id desc')->limit($page['limit'])->select();
    $this->assign('page',$page['pages']);
    $this->assign('list',$list);该方法不局限于TP内,适用于所有PHP程序
    原帖地址http://www.90coder.com/Home/Index/article/tid/46.html

    AD:真正免费,域名+虚机+企业邮箱=0元

    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习
    PHP中文网抖音号
    发现有趣的

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号