PHP写内容分页源码剖析

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

先看下效果图:

 

更多这样的分页效果,在php100论坛有很多这样的样式,在这儿分享图片中的CSS样式代码:

CSS:


  1. DIV.digg {PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center}  
  2. 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}  
  3. 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}  
  4. 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}  
  5. 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}  
  6. 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代码:


  1. <?php   
  2. $contents="fjka;fjsa;#page#批量生[newpage]#page#成分成文#page#件并且加#page#上分页代码";   //带了分页标签的原内容  
  3. $cons="fjka;fjsa;adsfasdfas码";  //不带分页标签的原内容  
  4.  
  5. function    conpage($contents) {  
  6.     $pagesss="#page#";  //设定分页标签  
  7.     $a=strpos($contents,$pagesss);  
  8.     if($a){  
  9.     $con=explode($pagesss,$contents);  
  10.     $cons=count($con);   
  11.     @$p = ceil($_GET["p"]);  
  12.     if(!$p$p<0) $p=1;  
  13.     $url=$_SERVER["REQUEST_URI"];  
  14.     $parse_url=parse_url($url);  
  15.     $url_query=$parse_url["query"];  
  16.     if($url_query){  
  17.     $url_query=ereg_replace("(^&)p=$p","",$url_query);  
  18.     $url=str_replace($parse_url["query"],$url_query,$url);  
  19.     if($url_query) $url.="&p"; else $url.="p";  
  20.     }else {  
  21.     $url.="?p";  
  22.     }  
  23.     if($cons<=1) return false;//只有一页时不显示分页  
  24.     $pagenav="<div class=\"digg\">";  
  25.     for($i=1;$i<=$cons;$i++){  
  26.         if($i==$p){  
  27.             $pagenav.="<span class="current">".$p."</span>";  
  28.         }else{  
  29.             $pagenav.="<a href="$url=$i">$i</a>";  
  30.         }  
  31.     }  
  32.     $pagenav.="</div>";  
  33.     return $con[$p-1].$pagenav;  
  34.     }else{  
  35.     return $contents;  
  36.     }  
  37. }  
  38.  
  39. echo     conpage($contents); //带有分页标签的  
  40. echo     conpage($cons);  //不带分页标签的  
  41.  
  42. ?>  

本文为PHP100中文社区原创作品,请转载注明出处:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2010/1201/6940.html

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索px
, 校历思路php源码
, 1px
php文章分页
php源码剖析、php分页源代码、php tp框架分页源代码、php分页源码、细说php分页类 源码,以便于您获取更多的相关知识。

时间: 2024-09-17 03:47:15

PHP写内容分页源码剖析的相关文章

PHP内容分页源码

PHP代码: <?php   $contents="fjka;fjsa;#page#批量生[newpage]#page#成分成文#page#件并且加#page#上分页代码";   //带了分页标签的原内容  $cons="fjka;fjsa;adsfasdfas码";  //不带分页标签的原内容   function    conpage($contents) {      $pagesss='#page#';  //设定分页标签      $a=strpos

linux0.11内核源码剖析:第一篇 内存管理、memory.c【转】

转自:http://www.cnblogs.com/v-July-v/archive/2011/01/06/1983695.html linux0.11内核源码剖析第一篇:memory.c   July  二零一一年一月六日 ----------------------------------------- 博主声明:1.本系列非linux系统教程,仅仅是针对linux0.11内核源码,所做的剖析,注释.2.本系列参考:深入理解linux内核.linux内核完全注释,linux内核源代码情景分析

Mongoose源码剖析:外篇之web服务器

引言 在深入Mongoose源码剖析之前,我们应该清楚web服务器是什么?它提供什么服务?怎样提供服务?使用什么协议?客户端如何唯一标识web服务器的资源?下面我们抛开Mongoose,来介绍一个web服务的这些通性. web服务器:通常是指一个计算机程序(web服务器是什么?),在World Wide Web上提供诸如web页面的服务(提供什么服务?),使用HyperText Transfer Protocol(HTTP)(使用什么协议?).当然web服务器也可以指运行这个程序的计算机或虚拟机

Java集合源码剖析:TreeMap源码剖析

前言 本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析. 红黑树简介 TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,参见:http://blog.csdn.net/ns_code/article/details/1982

Node 进阶:express 默认日志组件 morgan 从入门使用到源码剖析

本文摘录自个人总结<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 章节概览 morgan是express默认的日志中间件,也可以脱离express,作为node.js的日志组件单独使用.本文由浅入深,内容主要包括: morgan使用入门例子 如何将日志保存到本地文件 核心API使用说明及例子 进阶使用:1.日志分割 2.将日志写入数据库 源码剖析:morgan的日志格式以及预编译 入门例子 首先,初始化项目. npm insta

《GDAL源码剖析与开发指南》一一1.5 GDAL源码目录

1.5 GDAL源码目录 GDAL源码剖析与开发指南 下载的GDAL源代码压缩包目录如图1-2所示,使用SVN迁出的GDAL源代码目录如图1-3所示. 从图1-2和图1-3所示可以看出,不管用什么方式获取GDAL的源代码,它的目录结构都是一样的.下面我们就针对目录结构中的每个文件夹和文件作一个简单的说明(按照字母顺序). 1.5.1 文件夹说明 对于图1-3中所示的文件夹,详细说明如下. alg:该文件夹存放的是GDAL库中提供的一些算法的源代码,这些算法包括但不限于:DEM生成等高线算法,图像

Spark Stage切分 源码剖析——DAGScheduler

Spark中的任务管理是很重要的内容,可以说想要理解Spark的计算流程,就必须对它的任务的切分有一定的了解.不然你就看不懂Spark UI,看不懂Spark UI就无法去做优化...因此本篇就从源码的角度说说其中的一部分,Stage的切分--DAG图的创建 先说说概念 在Spark中有几个维度的概念: 应用Application,你的代码就是一个应用 Job,Job是以action为边界的. Stage,是按照宽窄依赖来界定的 Task,最终落实到各个工作节点上的任务,是真正意义上的任务 光说

Java集合源码剖析:Hashtable源码剖析

Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中. Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆. HashTable源码剖析 Hashtable的源码的很多实现都与HashMap差不多,源码如下(加入了比较详细的注释):

Java集合源码剖析:HashMap源码剖析

HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap. HashMap 实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆. HashMap源码剖析 HashMap的源码如下(加入了比较详细的注释): pac