`
yanli_xu
  • 浏览: 52029 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

PHP伪静态分页

    博客分类:
  • PHP
阅读更多
<?php
class RewritePage
{
	private $myde_count; //总记录数
	public $myde_size; //每页记录数
	private $myde_page; //当前页
	private $myde_page_count; //总页数
	private $page_url; //页面url
	private $page_i; //起始页
	private $page_ub; //结束页
	public $page_limit;

	function __construct($myde_count=0,$myde_size=1,$myde_page=1,$page_url)//构造函数
	{
		$this->myde_count=$this->numeric($myde_count);
		$this->myde_size=$this->numeric($myde_size);
		$this->myde_page=$this->numeric($myde_page);
		$this->page_limit=($this->myde_page * $this -> myde_size) - $this -> myde_size; //下一页的开始记录
		$this->page_url=$page_url; //连接的地址
		if($this->myde_page<1)$this->myde_page=1; //当前页小于1的时候,,值赋值为1
		if($this->myde_count<0)$this->myde_page=0;
		$this->myde_page_count=ceil($this->myde_count/$this->myde_size);//总页数
		if($this->myde_page_count<1)
		$this->myde_page_count=1;
		if($this->myde_page>$this->myde_page_count)
		$this->myde_page=$this->myde_page_count;
		//$this->page_i=$this->myde_page-2;
		$this->page_i=$this->myde_page-2;
		$this->page_ub=$this->myde_page+2;
		//$this->page_ub=$this->myde_page+2;
		if($this->page_i<1)$this->page_i=1;
		if($this->page_ub>$this->myde_page_count){$this->page_ub=$this->myde_page_count; }
	}
	
	private function numeric($id) //判断是否为数字
	{
		if (strlen($id)){
			if (!preg_match("/^[0-9]+$/",$id)) $id = 1;
		}else{
			$id = 1;
		}
		return $id;
	}
	
	private function page_replace($page) //地址替换
	{
		return str_replace("{page}", $page, $this -> page_url);
	}
	
	private function myde_home() //首页
	{
		if($this -> myde_page != 1){
			return " <li><a href=\"".$this -> page_replace(1)."\" title=\"首页\" >首页</a></li>\n";
		}else{
			return " <li>&nbsp;首页&nbsp;</li>\n";
		}
	}
	
	private function myde_prev() //上一页
	{
		if($this -> myde_page != 1){
			return " <li><a href=\"".$this -> page_replace($this->myde_page-1) ."\" title=\"上一页\" >上一页</a></li>\n";
		}else{
			return " <li>&nbsp;上一页&nbsp;</li>\n";
		}
	}
	
	private function myde_next() //下一页
	{
		if($this -> myde_page != $this -> myde_page_count){
			return " <li><a href=\"".$this -> page_replace($this->myde_page+1) ."\" title=\"下一页\" >下一页</a></li>\n";

		}else{
			return " <li>&nbsp;下一页&nbsp;</li>\n";
		}
	}
	
	private function myde_last() //尾页
	{
		if($this -> myde_page != $this -> myde_page_count){
			return " <li><a href=\"".$this -> page_replace($this -> myde_page_count)."\" title=\"尾页\" >尾页</a></li>\n";

		}else{
			return " <li>&nbsp;尾页&nbsp;</li>\n";
		}
	}
	
	function myde_write($id='page') //输出
	{
		$str = "<div id=\"".$id."\" class=\"pagelist\">\n <ul>\n ";
		//$str .= " <li>总记录:<span>".$this -> myde_count."</span></li>\n";
		//$str .= " <li><span>".$this -> myde_page."</span>/<span>".$this -> myde_page_count."</span></li>\n";
		$str .= $this -> myde_home();
		$str .= $this -> myde_prev();
		for($page_for_i=$this->page_i;$page_for_i <= $this -> page_ub; $page_for_i++){
			if($this -> myde_page == $page_for_i){
				$str .= " <li class=\"currentlist\">".$page_for_i."</li>\n";
			}
			else{
				$str .= " <li><a href=\"".$this -> page_replace($page_for_i)."\" title=\"第".$page_for_i."页\">";
				$str .= $page_for_i . "</a></li>\n";
			}
		}
		$str .= $this -> myde_next();
		$str .= $this -> myde_last();
		// $str .= " <li class=\"pages_input\"><input type=\"text\" value=\"".$this -> myde_page."\"";
		// $str .= "onmouseover=\"javascript:this.value='';this.focus();\" onkeydown=\"javascript: if(event.keyCode==13){ location='";
		// $str .= $this -> page_replace("'+this.value+'")."';return false;}\"";
		// $str .= " title=\"输入您想要到达的页码,然后回车!\" /></li>\n";
		$str .= " </ul></div>";
		return $str;
	}
}
/*-------------------------实例--------------------------------*
$page = new RewritePage(1000,5,$_GET['page'],'?page={page}');//用于动态
$page = new RewritePage(1000,5,$_GET['page'],'list-{page}.html');//用于静态或者伪静态
$page -> myde_write();//显示
*/
?>

 测试页:

<?php
require_once('RewritePage.class.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>伪静态分页测试</title>
<style type="text/css">
*{font:12px/1.5em Microsoft YaHei;}
div.pagelist{text-align:left;}
div.pagelist ul{list-style-type:none;}
div.pagelist li{display:inline; margin:0 5px;}
</style>
</head>
<body>
伪静态分页
<?php
$rewritePage = new RewritePage(1000, 5, $_GET['page'] = 3, 'list_{page}.html');
echo $rewritePage -> myde_write();
?>
<hr>
动态分页
<?php
$page = new RewritePage(1000, 5, $_GET['page'] = 3, '?page={page}');
echo $page -> myde_write();
?>
</body>
</html>
 
分享到:
评论

相关推荐

    伪静态分页解决路径问题

    在这个场景下,"伪静态分页解决路径问题"指的是在网站分页设计中,如何运用伪静态技术处理页面链接,确保每个分页的URL既具有静态页面的特征,又能正确指向对应的内容。 首先,我们需要理解什么是分页。在内容丰富...

    php分页类包括动态和静态

    在PHP编程中,分页是网站...静态分页适用于小规模、少变动的数据,动态分页适合大数据量和频繁更新,而伪静态分页兼顾用户体验和SEO优化。通过理解这些原理和技巧,开发者可以灵活地在项目中实现高效、友好的分页功能。

    帝国CMS 将TAGS页伪静态改成固定字母+ID 并支持分页的教程

    本教程将详细介绍如何将帝国CMS的TAGS页面伪静态设置为固定字母加ID的形式,并实现分页功能。 首先,我们要理解伪静态的概念。伪静态是一种技术,通过将动态URL转换为静态化形式,使得搜索引擎更容易抓取和索引,...

    mayicms蚂蚁分类信息5.8、5.9伪静态规则

    在IT行业中,网站优化是提升用户体验和搜索引擎友好性的重要环节,而“伪静态”就是其中一项关键技术。本文将深入探讨“mayicms蚂蚁分类信息5.8、5.9”版本的伪静态规则,以及如何配置和理解这些规则。 首先,让...

    PHP留言板(增-删-改-查-分页-伪静态-带权限-注册登录)

    这个名为"PHP留言板(增-删-改-查-分页-伪静态-带权限-注册登录)"的项目,是针对初学者设计的一个实践案例,涵盖了Web开发中的诸多基础概念和技术。 1. **PHP**: PHP是一种服务器端脚本语言,专门用于网页开发。在...

    tags标签伪静态的方法

    在IT领域,特别是网站开发与优化中,"伪静态"是一种常见的技术手段,它通过将动态页面URL转换为类似静态页面的URL格式,从而提升用户体验、SEO优化效果以及减轻服务器负担。本文将深入探讨“tags标签伪静态”的方法...

    织梦联动筛选伪静态[单链接形式].zip

    伪静态筛选分页 http://www.xxxx.com/juji/list_1_area_0_2.html 【警告】 操作之前先备份你的程序这2个文件。 /include/arc.listview.class.php /include/extend.func.php /.htaccess 如果存在就备份 安装说明 1...

    简单的存储过程分页+伪静态

    在这个场景中,我们关注的是“简单的存储过程分页+伪静态”这一主题,这涉及到数据库查询优化和网站SEO(搜索引擎优化)策略。以下是对这两个概念的详细说明: 首先,**存储过程(Stored Procedures)**是预编译的...

    蚂蚁伪静态5.9nginx

    ### 蚂蚁伪静态5.9 Nginx配置解析 #### 一、概述 本文主要解析了“蚂蚁伪静态5.9nginx”的Nginx配置规则,该配置旨在优化网站URL结构,使其更加友好、易于记忆且有利于搜索引擎优化(SEO)。通过一系列重写规则,...

    PHPCMS V9评论模块伪静态与TAG模块伪静态设置

    【PHP CMS V9评论模块伪静态设置】 在PHPCMS V9系统中,伪静态设置是一种优化网站SEO(搜索引擎优化)的技术,它将动态URL转化为静态化的HTML链接形式,使得网页更加友好于搜索引擎抓取。以下是如何配置评论模块的...

    小贤PHP通用分页程序 v1.0

    方式那里主要用来显示静态分页或者伪静态分页和动态分面。静态及伪静态显示方式为index- {page}.html 动态显示方式为index.php?page={page} OK了,就三步搞定!如有不懂的朋友可以Q我306282268

    PHP开发实用分页程序

    说明:记录总数那里我是先通过一条SQL语句计算出表中的总记录数,然后赋给一个$count的变量,显示方式那里主要用来显示静态分页或者伪静态分页和动态分面。静态及伪静态显示方式为index-{page}.html 动态显示方式为...

    小贤PHP分页类程序

    式那里主要用来显示静态分页或者伪静态分页和动态分面。静态及伪静态显示方式为index-{page}.html 动态显示方式为index.php?page={page} OK了,就三步搞定!如有不懂的朋友可以Q我306282268 下载地址:...

    帝国CMS搜索页伪静态实现方法

    函数的主要作用是根据当前的搜索结果集和分页参数,生成相应的静态分页URL。此外,还需要替换原有的分页函数调用代码,以确保使用新添加的分页函数。 4. 添加伪静态规则 伪静态的实现不仅需要修改后端代码,还需要...

    小贤PHP通用分页程序.rar

    我在一些PHP论坛上经常...式那里主要用来显示静态分页或者伪静态分页和动态分面。静态及伪静态显示方式为index-{page}.html 动态显示方式为index.php?page={page} OK了,就三步搞定!如有不懂的朋友可以Q我306282268

    ThinkPHP通用分页代码

    ### ThinkPHP通用分页代码详解 #### 一、概述 在Web开发中,为了提高用户体验并减轻服务器压力,分页技术被广泛应用于处理大量数据的展示。ThinkPHP框架因其轻量级、易用性等特点,在PHP开发领域拥有广泛的用户...

    小贤PHP通用分页程序 v1.0.rar

    我在一些PHP论坛上经常看到不少PHP初学者对于PHP分页很头痛,所以我就抽一点时间将我所写的网站中的 分页功能给分离出来给广大...程序的优点:可用于伪静态、静态和动态分页用,采用DIV CSS设计,兼容各常用浏览器;

    Typecho程序伪静态规则大全(包括Linux/Windows)

    ### Typecho程序伪静态规则详解 #### 一、概述 Typecho是一款轻量级的开源博客程序,由国人开发,以其简洁高效的特性受到不少用户的喜爱。与WordPress等其他博客平台相比,Typecho的一个显著特点在于它对服务器...

    phpcms2008 企业黄页模块伪静态设置规则分享

    为了提升网站的SEO优化和用户体验,通常会采用伪静态技术,将动态URL转换为静态化的URL形式。然而,官方提供的伪静态规则可能并不适用于所有情况。以下是一个自定义的伪静态设置规则,旨在解决官方规则无法正常工作...

    CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)

    在CI框架(CodeIgniter的简称)中,有许多经典操作类,比如路由、伪静态、分页、session以及验证码等。这些操作类让Web开发变得更加高效和模块化。下面将根据提供的文档内容,详细阐述CI框架中的这些操作类的使用...

Global site tag (gtag.js) - Google Analytics