수업 페이지 {
//수업 시작 /**************************************************** * **** * $total 총 레코드 수 * $pageNum 각 페이지에 표시되는 항목 수 * $url = '' link * $page->StartPage (표시 카테고리 통계, 문자 카테고리/숫자 페이징, 점프);
* $page->StartPage(true/false, true/false, true/false);
* 사이트 http://bbs.it-home .org
********************************************* *** *********** /
private $total; //총 레코드 수
private $pageNum; //각 페이지에 표시되는 숫자
private $page; //현재 페이지 수
private $pages; 총 페이지 수
private $url; //페이지 url
private $Aque; //URL 매개변수
/* 생성자*/
public 함수 PAGE($total, $pageNum, $url=' ?'){
$this->total = $total; //총 레코드 수
$this->pageNum = $pageNum; //페이지당 표시되는 수
$this-> ;url = $this->StrSift($url); //$url 값이 유효한지 확인합니다.
$this->Aque = $_GET;
$this ->page = $this->StrSift($_GET['page']) //현재 페이지 GET(전역 변수) 모드 매개변수, 현재 페이지 번호
$ this->page = is_numeric($this ->page) ? $this->page : 1; //현재 페이지 번호가 숫자가 아닌 경우 1로 설정합니다.
$this-> 페이지 = ceil($total/$pageNum); //전체 페이지 수.
if($this->page<1) $this->page = 1; 1, 1로 설정하세요.
//if ($this->page>$this->pages) $this->page = $this->pages; //페이지 번호가 더 클 경우; 최대 페이지 수보다 최대 페이지 수로 설정하세요.
}
/******************
* 페이징 방법
*********************/
function StartPage($str, $view=true, $jump=true){
if($view==true) $PageStr .= $this-> ;GetCount(); //통계 정보 페이징
if($str=='str') $PageStr .= $this-> GetPageStr(); //문자 페이징 형식 선택
else $PageStr .= $this->GetPageNum(); //숫자 페이징 형식 선택
if($jump==true) $PageStr .= $this ->JumpSelect(); //점프
return $PageStr;
}
/***********************************************
* 표시 통계 정보 형식: 총 5개 기록 페이지: 2/3
************************************ ****************/
function GetCount(){
$CountStr = "전체". $this-> ;total ." 기록 페이지:".$this->page."/".$this->pages." ";
return $CountStr;
}
/***********************************************
* 페이지 매김 형식 1: 첫 페이지 이전 페이지 다음 페이지 마지막 페이지
************************************ ****************/
function GetPageStr(){
$url = $this->url; //URL 가져오기
//URL 매개변수 처리: 배열의 키는 URL 변수이고, 배열의 값은 URL 변수의 값입니다.
foreach( $this->Aque as $key => $val){
스위치($key){
케이스 "페이지":
$Next = $val 1;
$Prev = $ val - 1;
중단;
기본값:
$Sque . = "&$key=".$this->StrSift($val);
}
}
if($Next==0) $Next=2;
//홈페이지에서 한 페이지
switch($this->page){
case $this->page<=1 : $pagestr .= "홈페이지 "; $pagestr . = "이전 페이지 "; break; 기본값: $pagestr .= "< a href='".$url."?page=1$Sque'> 홈 ";
$pagestr .= "이전 페이지 ";
}
//다음 페이지의 마지막 페이지
switch($this->page){
케이스 $this->page>=$this-> 페이지:
$pagestr .= "다음 페이지 ";
$pagestr .= "마지막 페이지 ";
break;
기본값:
$pagestr .= "다음 페이지 ";
$pagestr .= "마지막 페이지 ";
}
//페이징 문자열을 반환합니다.
return $pagestr;
}
/**************************************************** * *******
* 페이징 형식은 다음과 같습니다. 총 4307 기록 페이지: 1/72 1 2 3 4 5 6 7 8 9 10
******** **** ********************************************** **/
function GetPageNum(){
$url = $this->url
//URL 매개변수 구성 처리: 배열의 키는 URL 변수이고, 배열의 값은 URL 변수의 값입니다.
foreach($this->Aque as $key => $val){
스위치($key){
케이스 $key!="page":
$Sque .= "&$key=".$this->StrSift($val);
}
}
switch($this ->pages){
//총 페이지 수가 12페이지보다 큽니다:
case $this->pages>12:
//Before the 페이징 번호: <<< 스위치($this->page){
케이스 $this->page>1:
$pagestr .= " ";
$pagestr .= " ";
break;
기본값:
$pagestr .= "< " ; $pagestr .= "<< " } //페이지 번호: 1 2 3 4 5 6 왼쪽에 6개의 페이징 링크가 있고 오른쪽에 6개의 페이징 링크가 있습니다. 현재 페이지 번호. for($i=$this->page -6; $i<=$this->page 6; $i ){
if($i>$this- >pages) break;
if($i==$this-> page) $pagestr .= $i." ";
elseif($i>=1) $pagestr .= " $i ";
}
//번호 페이징 후: > >> ;
스위치($this->page){
케이스 $this ->page<$this->pages:
$pagestr .= " >> ";
$pagestr .= "> ";
break;
기본값:
$pagestr .= ">  ;";
$pagestr .= ">> ";
}
break;
기본값:
//총 페이지 수는 12페이지 미만입니다.
for($i=1; $i<=$this->pages; $i ){
스위치($i){
케이스 $i==$this->페이지:
$pagestr .= $i." ";
break;
기본값:
$pagestr .= "$i ";
}
}
}
//페이징 문자열을 반환합니다.
return $pagestr;
}
/************************
* 점프 페이지를 정의하세요. BEGIN
**************** **********/
function JumpSelect(){
$url = $this->url
//처리 URL 매개변수: 배열의 키는 URL 변수입니다. 배열의 값은 URL 변수의 값입니다.
foreach($this->Aque as $key => ; $val){
if($key != "page") $Sque .= "&$key=".$this->StrSift($val);
}
$SelectStr = "n $SelectStr .= "onChange="window.location='".$url."?page=' this.value '".$Sque."'">n";
for($ i=1; $i<=$this->pages; $i ){
if($i == $this ->page) $selected = "선택됨";
else $selected = " ";
$SelectStr .= "<옵션 값=$i".$selected.">$i
}
$SelectStr .= "
//페이징 문자열을 반환합니다.
return $SelectStr;
}
/**************************************
* 특수문자를 필터링합니다.
*** **** ****************************/
비공개 함수 StrSift($str){
$str = str_replace(""","",$str);
$str = str_replace("'","",$str);
$str = str_replace("[url=file://","",$str/]\","",$str[/url ]);
$str = str_replace("/","",$str );
$str = str_replace(":","",$str);
$str = str_replace(" ?","",$str); //제거하면 "??"가 됩니다. .
$str = str_replace(">","",$str);
$str = str_replace("< ;","",$str);
$str = str_replace(" %","",$str);
$str = str_replace("*","",$str);
$str = str_replace("&","",$str);
$str = str_replace(".","",$str);
return $str;
} p>
//수업 종료
}
?>
코드 복사
관심 있는 친구는 다음 기사를 참조할 수도 있습니다.
좋은 PHP 페이징 클래스 코드
실용적인 PHP 페이징 수업
페이지 매김 스타일 시트:
/*드롭다운 메뉴 또는 텍스트 입력 상자 스타일*/
# JumpSelect{
배경:#159bd0;
테두리:1px 솔리드 #ffff66;
색상:#ffff66;
너비:37px;
글꼴 크기:11px;
패딩:0 0 0 0;
여백:0 0 0 0;
스크롤바-얼굴 색상: #d0dff7;
스크롤바-하이라이트-색상: #d0dff7
스크롤바-그림자 색상: #FFFFFF;
스크롤바-3DLIGHT-색상: #FFFFFF;
스크롤바-화살표-색상: #ffffff;
스크롤바-추적-색상: #ffffff;
스크롤바-어두운 색상-색상: #d0dff7;
base -color: #ededed;
스크롤바 화살표 색상: #000;
스크롤바 하이라이트 색상: #fafafa;
스크롤바 그림자 색상: #fafafa;
스크롤바 트랙 -color : #ededed;
scrollbar-face-color: #fafafa;
scrollbar-darkshadow-color: #ededed;
scrollbar-3dlight-color: #ededed;
}
< ;/ 스타일>
코드 복사