찾다
php教程PHP源码超好用的PHP分页类(可自定义样式)

       

getPages()); //生成一个页码数组(键为页码,值为链接)
 * echo $p->showPages(1);	//生成一个页码样式(可添加自定义样式)
 * 
 * @author: Dzer* @version: 2014-12-25 09:09:42
 * @Last Modified time: 2014-12-28 17:37:13
 */

/*
思路:
给我一个 总页数,需要显示的页数,当前页,每页显示的条数,连接
写一个方法 生成一个一维数组,键为页码 值为连接
写一个方法 返回一个生成好样式的页码(并且可以根据自己需要添加样式)
默认样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]
*/
class Page{
	protected $count;		//总条数
	protected $showPages;	//需要显示的页数
	protected $countPages;	//总页数
	protected $currPage;	//当前页
	protected $subPages; 	//每页显示条数
	protected $href;		//连接
	protected $page_arr=array();	//保存生成的页码 键页码 值为连接

	/**
	 * __construct  构造函数(获取分页所需参数)
	 * @param int $count     总条数
	 * @param int $showPages 显示页数
	 * @param int $currPage  当前页数
	 * @param int $subPages  每页显示数量
	 * @param string $href   连接(不设置则获取当前URL)
	 */
	public function __construct($count,$showPages,$currPage,$subPages,$href=''){
		$this->count=$count;
		$this->showPages=$showPages;
		$this->currPage=$currPage;
		$this->subPages=$subPages;
		
		//如果链接没有设置则获取当前连接
		if(empty($href)){
			$this->href=htmlentities($_SERVER['PHP_SELF']); 
		}else{
			$this->href=$href;
		}
		$this->construct_Pages();
	}

	/**
	 * getPages 返回页码数组
	 * @return array 一维数组 键为页码 值为链接
	 */
	public function getPages(){
		return $this->page_arr;
	}

	/**
	 * showPages 返回生成好的页码
	 * @param  int $style 样式
	 * @return string     生成好的页码
	 */
	public function showPages($style=1){
		$func='pageStyle'.$style;
		return $this->$func();
	}

	/**
	 * pageStyle1 分页样式(可参照这个添加自定义样式 例如pageStyle2())
	 * 样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页] 
	 * @return string 
	 */
	protected function pageStyle1(){
		/* 构造普通模式的分页 
   		共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [1] [2] [3] .. [下页] [尾页] 
   		*/ 
   		$pageStr='共'.$this->count.'条记录,每页显示'.$this->subPages.'条';
   		$pageStr.='当前第'.$this->currPage.'/'.$this->countPages.'页 ';

   		$_GET['page'] = 1;
   		$pageStr.='[href.'?'.http_build_query($_GET).'" _href="'.$this->href.'?'.http_build_query($_GET).'">首页] ';
   		//如果当前页不是第一页就显示上页
   		if($this->currPage>1){
   			$_GET['page'] = $this->currPage-1;
   			$pageStr.='[href.'?'.http_build_query($_GET).'" _href="'.$this->href.'?'.http_build_query($_GET).'">上页] ';
   		}

   		foreach ($this->page_arr as $k => $v) {
   			$_GET['page'] = $k;
   			$pageStr.='['.$k.'] ';
   		}

   		//如果当前页小于总页数就显示下一页
   		if($this->currPagecountPages){
   			$_GET['page'] = $this->currPage+1;
   			$pageStr.='[href.'?'.http_build_query($_GET).'" _href="'.$this->href.'?'.http_build_query($_GET).'">下页] ';
		}

		$_GET['page'] = $this->countPages;
   		$pageStr.='[href.'?'.http_build_query($_GET).'" _href="'.$this->href.'?'.http_build_query($_GET).'">尾页] ';

   		return $pageStr;
	}

	/**
	 * construct_Pages 生成页码数组
	 * 键为页码,值为链接
	 * $this->page_arr=Array(
	 *  				[1] => index.php?page=1
	 *   	  			[2] => index.php?page=2
	 *    	    		[3] => index.php?page=3
	 *     	     		......)
	 */
	protected function construct_Pages(){
		//计算总页数
		$this->countPages=ceil($this->count/$this->subPages);
		//根据当前页计算前后页数
		$leftPage_num=floor($this->showPages/2);
		$rightPage_num=$this->showPages-$leftPage_num;

		//左边显示数为当前页减左边该显示的数 例如总显示7页 当前页是5  左边最小为5-3  右边为5+3
		$left=$this->currPage-$leftPage_num;
		$left=max($left,1);	//左边最小不能小于1
		$right=$left+$this->showPages-1;	//左边加显示页数减1就是右边显示数
		$right=min($right,$this->countPages);  //右边最大不能大于总页数
		$left=max($right-$this->showPages+1,1); //确定右边再计算左边,必须二次计算
		
		for ($i=$left; $i page_arr[$i]=$this->href.'?'.http_build_query($_GET);
		}
	}
}


<?php
/**
 * 分页类demo
 * Be the best of whatever you are!
 * 
 * @author: Dzer* @version: 2014-12-28 17:38:23
 * @Last Modified time: 2014-12-28 18:08:28
 */
header("content-type:text/html;charset=utf8");
include(&#39;./Page.class.php&#39;);	//引入类

//$p=new Page(总页数,显示页数,当前页码,每页显示条数,[链接]);
//连接不设置则为当前链接
$page=isset($_GET[&#39;page&#39;]) ? $_GET[&#39;page&#39;] : 1;
$p=new Page(100,7,$page,8);

//生成一个页码数组(键为页码,值为链接)
echo "";
print_r($p->getPages()); 

//生成一个页码样式(可添加自定义样式)
//样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]
echo $p->showPages(1);	
				    				            	            	

       

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구