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 .= "οnmοuseοver=\"javascript:this.value='';this.focus();\" οnkeydοwn=\"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>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值