首页后端开发PHPCI框架分页类的定义与使用方法是什么

CI框架分页类的定义与使用方法是什么

时间2024-03-22 21:18:03发布访客分类PHP浏览324
导读:相信很多人对“CI框架分页类的定义与使用方法是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 本文实例讲述了CI框架简单分页类用法。分享给大家供大家参考,具体如下: /** * * 关于 页码有效性的...
相信很多人对“CI框架分页类的定义与使用方法是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助

本文实例讲述了CI框架简单分页类用法。分享给大家供大家参考,具体如下:

/** 
 * 
 * 关于 页码有效性的判断需要加在 控制器中判断,即当页码数1或者>
总页数 
 * 
 */ 
class Custom_pagination 
{
     
  var $page_url = '';
     //分页目标URL 
  var $page_size = 10;
     //每一页行数 
  var $page_num = 1;
    //页码 
  var $rows_num= '';
    //数据总行数 
  var $links_num= 3;
    //选中链接前后的链接数,必须大于等于1 
 
  var $anchor_class= '';
    //链接样式类 
  var $current_class= '';
    //当前页样式类 
  var $full_tag_open= '';
    //分页开始标签 
  var $full_tag_close= '';
    //分页结束标签 
  var $info_tag_open= '';
     
  var $info_tag_close= ' ';
     
  var $first_tag_open= '';
     
  var $first_tag_close= ' ';
     
  var $last_tag_open= ' ';
     
  var $last_tag_close= '';
     
  var $cur_tag_open= ' strong>
    ';
     
  var $cur_tag_close= '/strong>
    ';
     
  var $next_tag_open= ' ';
     
  var $next_tag_close= ' ';
     
  var $prev_tag_open= ' ';
     
  var $prev_tag_close= '';
     
  var $num_tag_open= ' ';
     
  var $num_tag_close= '';
 
 
  public function __construct($params = array()) 
  {
     
    if (count($params) >
 0) 
    {
     
      $this->
    init($params);
 
    }
 
  }
 
  
  function init($params = array()) //初始化数据 
  {
     
    if (count($params) >
 0) 
    {
     
      foreach ($params as $key =>
 $val) 
      {
     
        if (isset($this->
$key)) 
        {
     
          $this->
    $key = $val;
 
        }
 
      }
 
    }
 
  }
 
  
  function create_links() 
  {
     
    /////////////////////////////////////////////////////// 
    //准备数据 
    /////////////////////////////////////////////////////// 
    $page_url = $this->
    page_url;
     
    $rows_num = $this->
    rows_num;
     
    $page_size = $this->
    page_size;
     
    $links_num = $this->
    links_num;
 
 
    if ($rows_num == 0 OR $page_size == 0) 
    {
     
      return '';
 
    }
     
 
    $pages = intval($rows_num/$page_size);
 
    if ($rows_num % $page_size) 
    {
     
      //有余数pages+1 
      $pages++;
 
    }
    ;
     
    $page_num = $this->
    page_num  1 ? '1' : $this->
    page_num;
     
 
    $anchor_class = '';
     
    if($this->
anchor_class !== '') 
    {
     
      $anchor_class = 'class="'.$this->
    anchor_class.'" ';
 
    }
     
 
    $current_class = '';
     
    if($this->
current_class !== '') 
    {
     
      $current_class = 'class="'.$this->
    current_class.'" ';
 
    }
 
    if($pages == 1) 
    {
     
      return '';
 
    }
 
    if($links_num  0) 
    {
     
      return '- -!links_num必须大于等于0';
 
    }
     
    //////////////////////////////////////////////////////// 
    //创建链接开始 
    //////////////////////////////////////////////////////// 
    $output = $this->
    full_tag_open;
     
    $output .= $this->
    info_tag_open.'共'.$rows_num.'条数据 第 '.$page_num.'/'.$pages.' 页'.$this->
    info_tag_close;
     
    //首页 
    if($page_num >
 1) 
    {
     
      $output .= $this->
    first_tag_open.'a '.$anchor_class.' href="'.site_url($page_url).'" rel="external nofollow" >
    首页/a>
    '.$this->
    first_tag_close;
 
    }
     
    //上一页 
    if($page_num >
 1) 
    {
     
      $n = $page_num - 1;
     
      $output .= $this->
    prev_tag_open.'a '.$anchor_class.' href="'.site_url($page_url.'/'.$n).'" rel="external nofollow" rel="external nofollow" >
    上一页/a>
    '.$this->
    prev_tag_close;
 
    }
     
    //pages 
    for($i=1;
    $i=$pages;
$i++) 
    {
     
      $pl = $page_num - $links_num  0 ? 0 : $page_num - $links_num;
     
      $pr = $page_num + $links_num >
     $pages ? $pages : $page_num + $links_num;
 
      //判断链接个数是否太少,举例,假设links_num = 2,则链接个数不可少于 5 个,主要是 当page_num 等于 1, 2 和 n,n-1的时候 
      if($pr  2 * $links_num + 1) 
      {
     
        $pr = 2 * $links_num + 1;
 
      }
     
      if($pl >
 $pages-2 * $links_num) 
      {
     
        $pl = $pages - 2 * $links_num;
 
      }
 
      if($i == $page_num) 
      {
      //current page 
        $output .= $this->
    cur_tag_open.'span '.$current_class.' >
    '.$i.'/span>
    '.$this->
    cur_tag_close;
 
      }
    else if($i >
    = $pl &
    &
 $i = $pr) 
      {
     
        $output .= $this->
    num_tag_open.'a '.$anchor_class.' href="'.site_url($page_url.'/'.$i).'" rel="external nofollow" >
    '.$i.'/a>
    '.$this->
    num_tag_close;
 
      }
 
    }
 
    //下一页 
    if($page_num  $pages) 
    {
     
      $n = $page_num + 1;
     
      $output .= $this->
    next_tag_open.'a '.$anchor_class.' href="'.site_url($page_url.'/'.$n).'" rel="external nofollow" rel="external nofollow" >
    下一页/a>
    '.$this->
    next_tag_close;
 
    }
 
    //末页 
    if($page_num  $pages) 
    {
     
      $output .= $this->
    last_tag_open.'a '.$anchor_class.' href="'.site_url($page_url.'/'.$pages).'" rel="external nofollow" >
    末页/a>
    '.$this->
    last_tag_close;
 
    }
     
 
    $output.=$this->
    full_tag_close;
     
    return $output;
 
  }
 
}
     

控制器里调用

$config['page_url'] 
= 'about/science';
     
$config['page_size'] = $pagesize;
     
$config['rows_num'] = $num_rows;
     
$config['page_num'] = $page;
     
$this->
    load->
    library('Custom_pagination');
     
$this->
    custom_pagination->
    init($config);
     
echo $this->
    custom_pagination->
    create_links();
 

?php 
class page{
     
   
  public $page;
     //当前页 
  public $pagenum;
     // 页数 
  public $pagesize;
 // 每页显示条数 
  public function __construct($count, $pagesize){
     
    $this->
    pagenum = ceil($count/$pagesize);
     
    $this->
    pagesize = $pagesize;
     
    $this->
    page =(isset($_GET['p'])&
    &
    $_GET['p']>
    0) ? intval($_GET['p']) : 1;
 
  }
 
  /** 
   * 获得 url 后面GET传递的参数 
   */  
  public function getUrl(){
       
    $url = 'index.php?'.http_build_query($_GET);
     
    $url = preg_replace('/[?,&
    ]p=(\w)+/','',$url);
     
    $url .= (strpos($url,"?") === false) ? '?' : '&
    ';
     
    return $url;
 
  }
 
  /** 
   * 获得分页HTML 
   */ 
  public function getPage(){
     
    $url = $this->
    getUrl();
     
    $start = $this->
    page-5;
     
    $start=$start>
    0 ? $start : 1;
      
    $end  = $start+9;
     
    $end = $end$this->
    pagenum ? $end : $this->
    pagenum;
     
    $pagestr = '';
     
    if($this->
    page>
5){
     
      $pagestr = "a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=1".">
    首页/a>
     ";
 
    }
     
    if($this->
page!=1){
     
      $pagestr.= "a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".($this->
    page-1).">
    上一页/a>
    ";
 
    }
     
     
    for($i=$start;
    $i=$end;
$i++){
     
      $pagestr.= "a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".$i.">
    ".$i."/a>
     ";
            
    }
     
    if($this->
    page!=$this->
pagenum){
     
      $pagestr.="a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".($this->
    page+1).">
    下一页/a>
    ";
 
       
    }
     
    if($this->
    page+5$this->
pagenum){
     
      $pagestr.="a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".$this->
    pagenum.">
    尾页/a>
     ";
 
    }
     
    return $pagestr;
   
  }
 
   
}
     
// 测试代码 
$page = new page(100,10);
     
$str=$page->
    getPage();
     
echo $str;
     
?>
    

以上就是关于“CI框架分页类的定义与使用方法是什么”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CI框架分页类的定义与使用方法是什么
本文地址: https://pptw.com/jishu/650884.html
MySQL数据库如何删除slave信息,方法是什么 Python多线程中join方法怎么使用

游客 回复需填写必要信息