欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP分页类,支持自定义样式,中间5页

程序员文章站 2022-05-16 09:58:02
...
<?php

//namespace Component;
/**
 * 2016-3-27
 * @author ankang
 */
class Page {
	private $ShowPage;
	private $CountPage;
	private $Floorp;
	private $PageUrl;
	private $PageClass;
	private $CurClass;
	
	/**
	 * @author ankang
	 * @param number $CountNum        	数据总数
	 * @param string $PageUrl        	跳转链接
	 * @param string $PageClass       	标签 总体样式	
	 * @param string $PageUrl        	当前页样式
	 * @param number $PageSize        	每页显示的数据条数
	 * @param number $ShowPage        	每次显示的页数	
	 */
	public function __construct($CountNum, $PageUrl = NULL, $PageClass = NULL,$CurClass = NULL, $PageSize = 20, $ShowPage = 5) {
		$this->ShowPage 		= $ShowPage;
		$this->CountPage 		= ceil ( $CountNum / $PageSize );
		$this->Floorp 			= floor ( $ShowPage / 2 ); // 偏移量		
		$this->PageClass 		= is_null ( $PageClass ) ? '' : $PageClass;
		$this->CurClass 		= is_null ( $CurClass ) ? '' : $CurClass;
		
		// $ServerURL		        = ( preg_match('/\?/i', $_SERVER['REQUEST_URI']))?preg_replace('/\&p\=[0-9]+/i', "", $_SERVER['REQUEST_URI']) : $_SERVER['REQUEST_URI']."?";
		// if( substr($ButURL,0,2)=='//' ){
			// $ServerURL          = substr($ServerURL,1);
		// }
		// $url                	= preg_replace('/p=[\d]*/i', '', $ServerURL);
		   $url					= '';
		//推荐自己传url,不传也可以打开上面的代码自动获取
		$this->PageUrl 			= is_null ( $PageUrl ) ? $url : $PageUrl;
	}
	
	/**
	 *
	 * @param number $Page        	
	 * @param string $ShowToPage
	 *        	首页,上下页,尾页
	 * @param string $Html	标签元素,li,p      
	 * @return string
	 */
	public function getPage($Page = 1, $ShowToPage = true, $Html = null) {
		$StartPage 			= ($Page - $this->Floorp); // 开始页码
		$EndPage 			= ($Page + $this->Floorp); // 结束页码
		
		if ($this->CountPage < $this->ShowPage) {
			$StartPage 		= 1;
			$EndPage 		= $this->CountPage;
		}
		
		if ($StartPage < 1) {
			$StartPage 		= 1;
			$EndPage 		= $this->ShowPage;
		}
		
		if ($EndPage > $this->CountPage) {
			$StartPage 		= $this->CountPage - $this->ShowPage + 1;
			$EndPage 		= $this->CountPage;
		}
		
		$PageHtml = '';
		
		if (! is_null ( $Html )) {
			if ($Html == 'li') {
				$Shtml = '';
				$Ehtml = '';
			} else {
				$Shtml = '';
				$Ehtml = '';
			}
		}
		
		if (true == $ShowToPage) {
			$PageHtml 				.= "$ShtmlPageUrl}p=1.html" _href="{$this->PageUrl}p=1.html">&laquo; 首页$Ehtml";
			$PrveUrl				 = $this->getPrve($Page);
			$PageHtml 				.= "$Shtml&laquo; 上一页$Ehtml";
		}
		
		for($i = $StartPage; $i getNext($Page);
			$PageHtml 				.= "$Shtml下一页 &raquo;$Ehtml";
			$PageHtml 				.= "$ShtmlPageUrl}p={$this->CountPage}.html" _href="{$this->PageUrl}p={$this->CountPage}.html">尾页 &raquo;$Ehtml";
		}
		
		return $PageHtml;
	}
	
	public function getPrve($Page){
		if ($Page != 1) {
			$Prve 				 = $Page - 1;
			$PrveUrl 			 = "{$this->PageUrl}p={$Prve}";
		} else {
			$PrveUrl 			 = "{$this->PageUrl}p=1";
		}
		
		return $PrveUrl;
	}
	
	public function getNext($Page){
		if ($Page != $this->CountPage) {
			$Next 				 = $Page + 1;
			$NextUrl 			 = "{$this->PageUrl}p={$Next}";
		} else {
			$NextUrl 			 = "{$this->PageUrl}p={$this->CountPage}";
		}
		
		return $NextUrl;
	}
	
	
	
}

2. [图片] page.pngPHP分页类,支持自定义样式,中间5页

PHP分页类,支持自定义样式,中间5页