欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-06-13 13:49:14
...
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元