当前位置:首页 > PHP教程 > php分页 > 列表

php 文章内容分页代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-09 11:29:40 浏览: 评论:0 

php文章内容分页代码,是根据由编辑器插入的分页符来操作了,我们可以分出超漂亮的偏移效果的分页,代码如下:

  1.  * author:陈凯 
  2.  * data:2010-09-15 
  3.  * 文章分页类 
  4.  */ 
  5.  
  6. class contentpage 
  7. { 
  8.  private $content;  //文章内容 
  9.  private $pagesize;    //每页最少字节数 
  10.  private $breakflag;  //分页符(可以自定义,默认为) 
  11.  private $pageurl;  //url地址 
  12.  private $pagevar;  //分页参数 
  13.  public  $pagecount;  //总页数 
  14.  public  $page;   //当前页码 
  15.  public  $pagebreak;  //每页起始位置 
  16.  
  17.  function __construct($content = "",$pagesize = 10,$breakflag =" ",$pageurl = '',$pagevar = 'p') 
  18.  { 
  19.   $this->content   = $content; 
  20.   $this->pagesize  = $pagesize; 
  21.   $this->breakflag = $breakflag; 
  22.   $this->pageurl   = $pageurl; 
  23.   $this->pagevar   = $pagevar; 
  24.   $this->getpages(); 
  25.  } 
  26.  
  27.  //总页数,每页的起始位置和结束位置 
  28.  public function getpages() 
  29.  { 
  30.   $contentlen   = strlen($this->content); //文章总字节数 
  31.   $this->pagebreak[0] = 0; 
  32.   $i = 0; 
  33.   $offset = $this->pagesize; 
  34.    
  35.   for ($k=0;$k<$contentlen/$this->pagesize;$k++) 
  36.   { 
  37.    if($offset > $contentlen) 
  38.    { 
  39.     $i++; 
  40.     $this->pagebreak[$i] = $contentlen; 
  41.     break; 
  42.    } 
  43.    //查找$this->pagevar出现的位置 
  44.    $where = strpos($this->content,$this->breakflag,$offset); 
  45.    if($where > $contentlen or intval($where) < 1) 
  46.    { 
  47.     $i++; 
  48.     $this->pagebreak[$i] = $contentlen; 
  49.     break; 
  50.    } 
  51.    else  
  52.    { 
  53.     $i++; 
  54.     $this->pagebreak[$i] = $where; 
  55.     $offset = $where + $this->pagesize; 
  56.    } 
  57.   } 
  58.   $this->pagecount = $i; 
  59.   if(isset($_get[$this->pagevar]) && $_get[$this->pagevar] >1 && $_get[$this->pagevar] <= $this->pagecount) 
  60.   { 
  61.    $this->page = $_get[$this->pagevar]; 
  62.   } 
  63.   else 
  64.   { 
  65.    $this->page = 1; 
  66.   } 
  67.  } 
  68.  
  69.  //每页内容 
  70.  function getpage() 
  71.  { 
  72.   //截取当前页码的数据 
  73.   if($this->page > 1) 
  74.   { 
  75.    return substr($this->content,$this->pagebreak[$this->page-1]+1,$this->pagebreak[$this->page] - $this->pagebreak[$this->page-1]); 
  76.   } 
  77.   else 
  78.   { 
  79.    return substr($this->content,$this->pagebreak[$this->page-1],$this->pagebreak[$this->page] - $this->pagebreak[$this->page-1]); 
  80.   } 
  81.  
  82.  } 
  83.  
  84.  //分页条 
  85.  public function getpagenav() 
  86.  { 
  87.   if($this->page > 1) 
  88.   { 
  89.    $pagenav = "<a href='".$this->geturl()."=".($this->page-1)."' class='div'>上一页</a>&nbsp;&nbsp;"; 
  90.   } 
  91.  
  92.   //输出数字页码 
  93.   for($j=1;$j<=$this->pagecount;$j++) 
  94.   { 
  95.    if($j == $this->page) 
  96.    { 
  97.     $pagenav .= "<span class='divsi'>".$j."</span>&nbsp;&nbsp;"; 
  98.    } 
  99.    else 
  100.    { 
  101.     $pagenav .= "<a href='".$this->geturl()."=".$j."' class='div'>".$j."</a>&nbsp;&nbsp;"; 
  102.    } 
  103.   } 
  104.   //下一页 
  105.   if($this->page < $this->pagecount && $this->pagecount >1) 
  106.   { 
  107.    $pagenav .= "<a href='".$this->geturl()."=".($this->page+1)."' class='div'>下一页</a>&nbsp;&nbsp;"; 
  108.   } 
  109.   return $pagenav; 
  110.  } 
  111.  //获取url地址 
  112.  public function geturl() 
  113.  { 
  114.   $url = $_server['request_uri']; 
  115.   $parse_url = parse_url($url); 
  116.   $query_url = $parse_url['query']; 
  117.    
  118.   if($query_url) 
  119.   { 
  120.    $query_url = ereg_replace("(^|&)".$this->pagevar."=".$this->page,"",$query_url); 
  121.    $url = str_replace($parse_url['query'],$query_url,$url); 
  122.    if($query_url) 
  123.    { 
  124.     $url .= "&".$this->pagevar; 
  125.    } 
  126.    else 
  127.    { 
  128.     $url .= $this->pagevar; 
  129.    } 
  130.   } 
  131.   else 
  132.   { 
  133.    $url .= "?".$this->pagevar; 
  134.   } 
  135.   return $url; 
  136.  } 
  137. } 
  138.  
  139. $content = "第一页:文章内容分页阿斯顿浪费空间阿斯顿来看福建省地方吉林省福建路口附近大手拉飞机上浪费的说浪费监理费 
  140. 第二页:阿斯顿房间阿双方了解啊对萨拉开发记得谁来付款将令对方空间的来福建阿里是否 
  141. 第三页:欧文炯诶哦生地拉开方面来看就继续超文章内容分页滤机蓝卡 
  142. 第四页:欧文日据拉萨及发动四分啊就双方的将爱是发觉是文章内容分页否了。"; 
  143. $model = new contentpage($content); 
  144. echo $model->getpage();  //输出分页内容 
  145. echo $model->getpagenav(); //输出页码 
  146. ?> 
  147.  
  148. <style type="text/css教程"> 
  149. <!-- 
  150. body { 
  151.  width:800px; 
  152.  margin:0 auto; 
  153.  margin-top:50px; 
  154.  font-size:12px; 
  155. } 
  156. a { 
  157.  color:#014ccc; 
  158.  text-decoration:none; 
  159. } 
  160. .div { 
  161.  float:left; 
  162.  cursor:pointer; 
  163.  font-weight:bold; 
  164.  margin-right:5px; 
  165.  display: block; 
  166.  padding:3px 7px; 
  167.  text-align:center; 
  168.  border:#bbdded solid 1px; 
  169. } 
  170. .divs { 
  171.  float:left; 
  172.  font-weight:bold; 
  173.  margin-right:5px; 
  174.  display: block; 
  175.  padding:3px 7px; 
  176.  text-align:center; 
  177.  border:#cccccc solid 1px; 
  178. } 
  179. .divsi { 
  180.  float:left; 
  181.  font-weight:bold; 
  182.  margin-right:5px; 
  183.  display: block; 
  184.  padding:3px 7px; 
  185.  text-align:center; 
  186.  background:#3399ff; 
  187.  color:#ffffff; 
  188.  border:#cccccc solid 1px; 
  189. }//开源代码phpfensi.com 
  190. .div:hover { 
  191.  background:#3399ff; 
  192.  color:#ffffff; 
  193. } 
  194. .divsi:hover { 
  195.  background:#3399ff; 
  196.  color:#ffffff; 
  197. } 
  198.  
  199.  
  200. --> 
  201. </style> 

Tags: php文章内容分页 php文章分页

分享到:

相关文章