安哥网络 发表于 2014-1-8 14:59:47

PHP写内容分页源码剖析-it论坛-计算机论坛

PHP写内容分页源码剖析-it论坛-计算机论坛
所谓内容分页,就是根据你自己设定的标签,将较长的内容按你设置的标签来进行分页,本文涉及的两个地方,一个是地址的获取,网上有很多这样的分页教程,但是地址都是固定的,如果页面中有评论分页以及文章ID调用过来,就会非常麻烦,文中采用了PHP100视频教程中分页原理 (http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0416/807.html) 思路,有不清楚的童鞋可以看下此教程,同时运用了一些内容处理函数以及数组方面知识,本人头次写这样的文章,表述不清楚的还请见谅
先看下效果图:

http://www.php100.com/cms/uploads/101201/1_093727_1.jpg
更多这样的分页效果,在php100论坛有很多这样的样式,在这儿分享图片中的CSS样式代码:
CSS:    DIV.digg {PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center}
    DIV.digg A {BORDER-RIGHT: #aaaadd 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaadd 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #aaaadd 1px solid; COLOR: #000099; PADDING-TOP: 2px; BORDER-BOTTOM: #aaaadd 1px solid; TEXT-DECORATION: none}
    DIV.digg A:hover {BORDER-RIGHT: #000099 1px solid; BORDER-TOP: #000099 1px solid; BORDER-LEFT: #000099 1px solid; COLOR: #000; BORDER-BOTTOM: #000099 1px solid}
    DIV.digg A:active {BORDER-RIGHT: #000099 1px solid; BORDER-TOP: #000099 1px solid; BORDER-LEFT: #000099 1px solid; COLOR: #000; BORDER-BOTTOM: #000099 1px solid}
    DIV.digg SPAN.current {BORDER-RIGHT: #000099 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #000099 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #000099 1px solid; COLOR: #fff; PADDING-TOP: 2px; BORDER-BOTTOM: #000099 1px solid; BACKGROUND-COLOR: #000099}
    DIV.digg SPAN.disabled {BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #eee 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #eee 1px solid; COLOR: #ddd; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px solid}

PHP代码:

    <?php   
    $contents="fjka;fjsa;#page#批量生#page#成分成文#page#件并且加#page#上分页代码";   //带了分页标签的原内容
    $cons="fjka;fjsa;adsfasdfas码";//不带分页标签的原内容
   
    function    conpage($contents) {
      $pagesss='#page#';//设定分页标签
      $a=strpos($contents,$pagesss);
      if($a){
      $con=explode($pagesss,$contents);
      $cons=count($con);   
      @$p = ceil($_GET['p']);
      if(!$p||$p<0) $p=1;
      $url=$_SERVER["REQUEST_URI"];
      $parse_url=parse_url($url);
      $url_query=$parse_url["query"];
      if($url_query){
      $url_query=ereg_replace("(^|&)p=$p","",$url_query);
      $url=str_replace($parse_url["query"],$url_query,$url);
      if($url_query) $url.="&p"; else $url.="p";
      }else {
      $url.="?p";
      }
      if($cons<=1) return false;//只有一页时不显示分页
      $pagenav="<div class=\"digg\">";
      for($i=1;$i<=$cons;$i++){
            if($i==$p){
                $pagenav.='<span class="current">'.$p.'</span>';
            }else{
                $pagenav.="<a href='$url=$i'>$i</a>";
            }
      }
      $pagenav.="</div>";
      return $con[$p-1].$pagenav;
      }else{
      return $contents;
      }
    }
   
    echo   conpage($contents); //带有分页标签的
    echo   conpage($cons);//不带分页标签的
   
    ?>出自:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2010/1201/6940.html

页: [1]
查看完整版本: PHP写内容分页源码剖析-it论坛-计算机论坛