PHP写内容分页源码剖析
2010-12-01 19:22:32 来源:WEB开发网核心提示: 所谓内容分页,就是根据你自己设定的标签,PHP写内容分页源码剖析,将较长的内容按你设置的标签来进行分页,本文涉及的两个地方,本人头次写这样的文章,表述不清楚的还请见谅先看下效果图: 更多这样的分页效果,一个是地址的获取,网上有很多这样的分页教程
所谓内容分页,就是根据你自己设定的标签,将较长的内容按你设置的标签来进行分页,本文涉及的两个地方,一个是地址的获取,网上有很多这样的分页教程,但是地址都是固定的,如果页面中有评论分页以及文章ID调用过来,就会非常麻烦,文中采用了PHP100视频教程中分页原理 (http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0416/807.html) 思路,有不清楚的童鞋可以看下此教程,同时运用了一些内容处理函数以及数组方面知识,本人头次写这样的文章,表述不清楚的还请见谅
先看下效果图:
更多这样的分页效果,在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#批量生[newpage]#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); //不带分页标签的
- ?>
[]
更多精彩
赞助商链接