日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php分页显示

發(fā)布時間:2023/12/2 php 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php分页显示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
<?php /*** Page Class* 實現(xiàn)各種分頁樣式* @author yangsh*/ class Pager {/*** 數(shù)據(jù)總數(shù)* @var integer*/private $totalItems;/*** 每頁顯示數(shù)* @var integer*/private $pageSize = 20;/*** 頁面顯示的頁碼標號的數(shù)量* @var integer*/private $codeNum = 10;/*** 跳轉(zhuǎn)鏈接* @var string(url)*/private $jumpLink = '';/*** 分頁語言* @var string*/private $parseLang = array();/*** 裝載頁碼的[Key]值* @var integer*/private $keyPage = 'pTag';/*** 構(gòu)造函數(shù)* @param $totalItems 總的信息數(shù)量* @param $pageSize 每頁顯示的條數(shù)* @param $codeNum 頁面顯示的頁碼標號的數(shù)量(取偶數(shù),非偶數(shù)時取加1)* @param $language 分頁顯示語言(en,zh,sign)* @param $keyPage 裝載分頁碼標號的變量名稱* @param $curtPage 初始頁* @param $path 分頁頁面鏈接地址*/public function __construct($totalItems,$pageSize='',$language='',$codeNum='') {$this->setTotalItems($totalItems); //總的數(shù)據(jù)$this->setPageSize($pageSize); //每頁顯示數(shù)$this->setParseLang($language); //分頁語言$this->setCodeNum($codeNum); //頁面顯示的頁碼標號的數(shù)量}/*** 裝載默認分頁HTML* @return string(html)*/public function parsePage() {$str = $this->getHtmlInfoPage(); //分頁信息$str .= $this->getHtmlFirstPage(); //第一頁$str .= $this->getHtmlLastPage(); //上一頁$str .= $this->getHtmlPageList('',''); //頁碼$str .= $this->getHtmlNextPage(); //下一頁$str .= $this->getHtmlFinallyPage(); //最后頁$str .= $this->getHtmlSelectPage(); //下拉列表return $str;}/*** 設(shè)置分頁語言* @param string $language 語言簡寫(en|zh|sign)* @return array*/private function setParseLang($language) {$aryLang = array('sign' => array('LAST_PAGE' => '<','NEXT_PAGE' => '>','FIRST_PAGE' => '<<','FINALLY_PAGE'=> '>>','INFO_PAGE' => '{CURRENT_PAGE}/{TOTAL_PAGE}','JUMP' => 'GO','PAGE' => '','FROM' => '','BUTTON' => '',),'cn' => array('LAST_PAGE' => '上一頁','NEXT_PAGE' => '下一頁','FIRST_PAGE' => '首頁','FINALLY_PAGE'=> '尾頁','INFO_PAGE' => '頁次:<b>{CURRENT_PAGE}</b>/<b>{TOTAL_PAGE}</b>頁 共<b>{TOTALITEM}</b>條記錄 ','JUMP' => '轉(zhuǎn)到','PAGE' => '頁','FROM' => '第','BUTTON' => '跳轉(zhuǎn)',),'en' => array('LAST_PAGE' => 'LAST','NEXT_PAGE' => 'NEXT','FIRST_PAGE' => 'FIRST','FINALLY_PAGE'=> 'FINAL','INFO_PAGE' => 'PAGE {CURRENT_PAGE} OF {TOTAL_PAGE}','JUMP' => 'GO','PAGE' => '','FROM' => '','BUTTON' => '',),);if(in_array($language, array_keys($aryLang))) {$this->parseLang = $aryLang[$language];} else {$this->parseLang = $aryLang['cn'];}}/*** 測試用* 得到一些分頁相關(guān)信息* @return string*/public function getMessage() {$info = '<center><br><br><table border=1 bordercolor=red><tr><td>';$info .= '<font color=blue>';$info .= '<center>----------分頁類------------</center>';$info .= '<b>初始設(shè)置:</b><br>共有信息數(shù)量 totalItems:' .$this->totalItems;$info .= '<br>設(shè)置每頁顯示數(shù)量 pageSize:' .$this->pageSize;$info .= '<br>設(shè)置每頁顯示的頁碼數(shù) codeNum:' .$this->codeNum;$info .= '<br>設(shè)置裝載頁碼的變量名 keyPage:' .$this->keyPage;$info .= '<br>設(shè)置跳轉(zhuǎn)的URL jumpLink:' .$this->jumpLink;$info .= '<br><b>返回信息:</b>';$info .= '<br>得到的總頁數(shù) getPageNum():' .$this->getPageNum();$info .= '<br>得到的當(dāng)前頁碼 curtPage:' .$this->getCurtPage();$info .= '<br>得到的數(shù)據(jù)庫檢索條件 getSqlLimit():' .$this->getSqlLimit();$info .= '<br><b>所有樣式:</b><br>';$info .= 'getHtmlInfoPage(): '.$this->getHtmlInfoPage().'<br>getHtmlFirstPage():'.$this->getHtmlFirstPage().'<br>getHtmlLastPage():'.$this->getHtmlLastPage();$info .= '<br>getHtmlPageList(): '.$this->getHtmlPageList('[', ']').'<br>getHtmlNextPage():'.$this->getHtmlNextPage().'<br>getHtmlFinallyPage():'.$this->getHtmlFinallyPage();$info .= '<br>getHtmlSelectPage(): '.$this->getHtmlSelectPage();$info .= '</font>';$info .= '</td></tr></table><br><br></center>';print_r($info);}/*** 設(shè)置記錄總數(shù)* @param int $total* @return void*/private function setTotalItems($total) {$this->totalItems = max(1, intval($total));}/*** 設(shè)置裝載頁碼的[key],為空時表示生成靜態(tài)頁的分頁* @param string $str(ex:page)* @return void*/public function setKeyPage($str) {if (!empty($str)) {$this->keyPage = $str;}}/*** 設(shè)置頁面顯示的頁碼標號的數(shù)量* @param integer $codeNum*/private function setCodeNum($codeNum) {if (!empty($codeNum)) {$this->codeNum = max(2, $codeNum+$codeNum%2); //該值須為偶數(shù)}}/*** 設(shè)置跳轉(zhuǎn)路徑(ex: /path/ex.php[htm])* @param string $fileName 跳轉(zhuǎn)路徑(默認跳轉(zhuǎn)至當(dāng)前頁)* @return void*/public function setJumpLink($jumpLink) {$this->jumpLink = $jumpLink;}/*** 設(shè)置當(dāng)前頁* @param integer $curtPage 當(dāng)前頁碼* @return void*/private function getCurtPage() {$curtPage = isset($_GET[$this->keyPage]) ? intval($_GET[$this->keyPage]) : 1;$curtPage = max(1, $curtPage);$curtPage = min($curtPage, $this->getPageNum());return $curtPage;}/*** 設(shè)置每頁顯示記錄數(shù)* @param int $pageSize* @return void*/private function setPageSize($pageSize) {if(!empty($pageSize)) {$this->pageSize = max(1, intval($pageSize));}}/*** 返回跳轉(zhuǎn)URL* @param int $pageVal 轉(zhuǎn)至的頁數(shù)* @return string(url)*/private function getJumpLink($pageVal) {$pageVal = max(0, intval($pageVal));if (preg_match('#(\.htm(l?))$#i', $this->jumpLink)) {$fary = explode('.', $this->jumpLink);$fary[count($fary)-2] .= $pageVal;return implode('.', $fary);}if (!empty($_SERVER['QUERY_STRING'])) {$qs = $_SERVER['QUERY_STRING']. '&';$qs = preg_replace('#'.$this->keyPage.'=[^\&]*\&?#i', '', $qs);} else {$qs = '';}return $this->jumpLink. '?' .$qs.$this->keyPage. '=' .$pageVal;}/*** 得到總頁數(shù)* @return integer*/public function getPageNum() {return ceil($this->totalItems / $this->pageSize);}/*** 得到格式化的分頁信息* @return string*/public function getHtmlInfoPage() {$str = $this->parseLang['INFO_PAGE'];$str = str_replace('{TOTAL_PAGE}', $this->getPageNum(), $str);$str = str_replace('{CURRENT_PAGE}', $this->getCurtPage(), $str);$str = str_replace('{TOTALITEM}' , $this->totalItems, $str);return $str;}/*** 得到格式化的頁碼標號* @param $trim 為分頁標號之間間隔字符,默認為:空格* @return string*/public function getHtmlPageList($trim_l = ' ',$trim_r = ' ') {$str = '';//前$codeNum/2頁for($i=($this->getCurtPage()-($this->codeNum/2)); $i<$this->getCurtPage(); $i++) {if ($i < 1) continue;$str .= $trim_l. '<a href="' .$this->getJumpLink($i). '">' .$i. '</a>' .$trim_r;}$str .= '<a class="selected active">' .$trim_l.$i.$trim_r. '</a>'; //當(dāng)前頁//后$codeNum/2-1頁for ($i=($this->getCurtPage()+1); $i<($this->getCurtPage()+($this->codeNum/2)); $i++) {if($i > $this->getPageNum()) break;$str .= $trim_l. '<a href="' .$this->getJumpLink($i). '">' .$i. '</a>' .$trim_r;}return $str;}/*** 得到格式化的第一頁* @return string(html)*/public function getHtmlFirstPage() {if($this->getCurtPage() <= 1) {//return ' ' .$this->parseLang['FIRST_PAGE']. ' ';return ' ';}return ' <a href="' . $this->getJumpLink(1). '">' .$this->parseLang['FIRST_PAGE'] . '</a> ';}/*** 得到格式化的最后頁* @return string*/public function getHtmlFinallyPage() {if($this->getCurtPage() >= $this->getPageNum()) {//return ' ' .$this->parseLang['FINALLY_PAGE']. ' ';return ' ';}return ' <a href="' .$this->getJumpLink($this->getPageNum()). '">' .$this->parseLang['FINALLY_PAGE']. '</a> ';}/*** 得到格式化后的上一頁* @return string*/public function getHtmlLastPage() {if ($this->getCurtPage() <= 1) {//return ' ' .$this->parseLang['LAST_PAGE']. ' ';return ' ';}return ' <a href="' .$this->getJumpLink($this->getCurtPage()-1). '">' .$this->parseLang['LAST_PAGE']. '</a> ';}/*** 得到格式化的下一頁* @return string*/public function getHtmlNextPage() {if($this->getCurtPage() >= $this->getPageNum()) {//return ' ' .$this->parseLang['NEXT_PAGE']. ' ';return ' ';}return ' <a href="' .$this->getJumpLink($this->getCurtPage()+1). '">' .$this->parseLang['NEXT_PAGE']. '</a> ';}/*** 得到格式化的以下拉菜單顯示* @return string*/public function getHtmlSelectPage($html='input') {$str = $this->parseLang['JUMP']. '<select name="' .$this->keyPage. '" ';$str.= 'onChange="javascript:window.location.href=this.options[selectedIndex].value">'.$this->parseLang['PAGE'];$s = '';for ($i=1; $i<=$this->getPageNum(); $i++) {$s = ($i == $this->getCurtPage()) ? ' selected' : '';$str .= '<option value="' .$this->getJumpLink($i). '"' .$s.'>' .$i. '</option>';}$str .= '</select>'.$this->parseLang['PAGE'];$str2 = '<label>'.$this->parseLang['FROM'].'<input id="_pTagInput_" type="text" value="'.$this->getCurtPage().'" />';$str2.= $this->parseLang['PAGE'].'</label>';$str2.= '<label><button οnclick="window.location.href=\''.$this->getJumpLink(0).'\'+document.getElementById(\'_pTagInput_\').value">';$str2.= $this->parseLang['BUTTON'].'</button></label>';return $html == 'select' ? $str : $str2;}/*** 返回用于外部調(diào)用的當(dāng)前URL*/public function getArgv() {return '&' .$this->keyPage. '=' .$this->getCurtPage();}/*** 返回SQL語句(數(shù)據(jù)庫查詢)* @return string*/public function getSqlLimit() {return ' LIMIT ' .max(0, intval($this->getCurtPage() * $this->pageSize - $this->pageSize)). ',' .$this->pageSize;}/*** 返回分頁計算參數(shù) start* @return int*/public function getLimitStart() {return max(0, intval($this->getCurtPage() * $this->pageSize - $this->pageSize));}/*** 返回分頁計算參數(shù) offset* @return int*/public function getLimitOffset() {return $this->pageSize;}} .meneame {PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 80%; PADDING-BOTTOM: 3px; MARGIN: 3px; COLOR: #ff6500; PADDING-TOP: 3px; TEXT-ALIGN: center; clear:both;} .meneame A {BORDER-RIGHT: #ff9600 1px solid; PADDING-RIGHT: 7px; BACKGROUND-POSITION: 50% bottom; BORDER-TOP: #ff9600 1px solid; PADDING-LEFT: 7px; BACKGROUND-IMAGE: url(meneame.jpg); PADDING-BOTTOM: 5px; BORDER-LEFT: #ff9600 1px solid; COLOR: #ff6500; MARGIN-RIGHT: 3px; PADDING-TOP: 5px; BORDER-BOTTOM: #ff9600 1px solid; TEXT-DECORATION: none } .meneame A:hover {BORDER-RIGHT: #ff9600 1px solid; BORDER-TOP: #ff9600 1px solid; BACKGROUND-IMAGE: none; BORDER-LEFT: #ff9600 1px solid; COLOR: #ff6500; BORDER-BOTTOM: #ff9600 1px solid; BACKGROUND-COLOR: #ffc794 } .meneame A:active {BORDER-RIGHT: #ff9600 1px solid; BORDER-TOP: #ff9600 1px solid; BACKGROUND-IMAGE: none; BORDER-LEFT: #ff9600 1px solid; COLOR: #ff6500; BORDER-BOTTOM: #ff9600 1px solid; BACKGROUND-COLOR: #ffc794 } .meneame SPAN.current,.selected {BORDER-RIGHT: #ff6500 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: #ff6500 1px solid; PADDING-LEFT: 7px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; BORDER-LEFT: #ff6500 1px solid; COLOR: #ff6500; MARGIN-RIGHT: 3px; PADDING-TOP: 5px; BORDER-BOTTOM: #ff6500 1px solid; BACKGROUND-COLOR: #ffbe94 } .meneame SPAN.disabled {BORDER-RIGHT: #ffe3c6 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: #ffe3c6 1px solid; PADDING-LEFT: 7px; PADDING-BOTTOM: 5px; BORDER-LEFT: #ffe3c6 1px solid; COLOR: #ffe3c6; MARGIN-RIGHT: 3px; PADDING-TOP: 5px; BORDER-BOTTOM: #ffe3c6 1px solid }

轉(zhuǎn)載于:https://www.cnblogs.com/codelifezj/archive/2011/04/22/phppager.html

總結(jié)

以上是生活随笔為你收集整理的php分页显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。