Pear::Pager分頁(yè)類簡(jiǎn)介
Pear的Pager分頁(yè)類是一個(gè)很好用的php分頁(yè)類,擴(kuò)展性很強(qiáng),能夠適應(yīng)各種分頁(yè)情況的需求,至少我在幾年間大大小小的項(xiàng)目里,基本上沒有為分頁(yè)額外寫過代碼,全部都是用的Pager,足見Pager的可用性之強(qiáng).下面用代碼來(lái)看看它的使用范例:
例子1
PHP: -
<?php
-
require_once ‘Pager/Pager.php‘;
-
-
‘mode‘ => ‘Jumping‘,
-
‘perPage‘ => 3,
-
‘delta‘ => 2,
-
‘itemData‘ =>
array(‘a(chǎn)‘,
‘b‘,
‘c‘,
‘d‘,
‘e‘,
[...omissis...
],
‘z‘) -
);
-
$pager = & Pager::factory($params);
-
$data = $pager->getPageData();
-
$links = $pager->getLinks();
-
//$links is an ordered+associative array with ‘back‘/‘pages‘/‘next‘/‘first‘/‘last‘/‘a(chǎn)ll‘ links
-
//NB: $links[‘a(chǎn)ll‘] is the same as $pager->links;
-
-
//echo links to other pages:
-
echo $links[‘a(chǎn)ll‘];
-
-
//Pager can also generate <link rel="first|prev|next|last"> tags
-
-
-
//Show data for current page:
-
-
-
//Results from methods:
-
echo ‘getCurrentPageID()...: ‘;
var_dump($pager->
getCurrentPageID());
-
echo ‘getNextPageID()......: ‘;
var_dump($pager->
getNextPageID());
-
echo ‘getPreviousPageID()..: ‘;
var_dump($pager->
getPreviousPageID());
-
echo ‘numItems()...........: ‘;
var_dump($pager->
numItems());
-
echo ‘numPages()...........: ‘;
var_dump($pager->
numPages());
-
echo ‘isFirstPage()........: ‘;
var_dump($pager->
isFirstPage());
-
echo ‘isLastPage().........: ‘;
var_dump($pager->
isLastPage());
-
echo ‘isLastPageComplete().: ‘;
var_dump($pager->
isLastPageComplete());
-
-
?>
Pager的使用,只要調(diào)整$param數(shù)組的參數(shù),就可以應(yīng)付很多種分頁(yè)情況了.代碼中的$links數(shù)組包含了一些鏈接,如上一頁(yè)/頁(yè)碼/下一頁(yè)/第一頁(yè)/末頁(yè)/全部.
例2
如今許多網(wǎng)站為了SEO,把動(dòng)態(tài)頁(yè)使用rewrite規(guī)則偽造成靜態(tài)頁(yè)的形式,例如下面這個(gè).htaccess配置:
RewriteEngine on
#Options FollowSymlinks
RewriteBase /
RewriteRule ^articles/([a-z]{1,12})/art([0-9]{1,4})\.html$ /article.php?num=$2&month=$1 [L]
即使在這種情況下,Pager分頁(yè)仍然有辦法工作,見下面的code
PHP: -
<?php
-
require_once ‘Pager/Pager.php‘;
-
-
//first pager
-
-
‘perPage‘ => 3,
-
‘urlVar‘ => pageID_articles, //1st identifier
-
‘itemData‘ => $someArray
-
);
-
$pager1 = & Pager::factory($params1);
-
$data1 = $pager1->getPageData();
-
$links1 = $pager1->getLinks();
-
-
//second pager
-
-
‘perPage‘ => 8,
-
‘urlVar‘ => pageID_news, //2nd identifier
-
‘itemData‘ => $someOtherArray
-
);
-
$pager2 = & Pager::factory($params2);
-
$data2 = $pager2->getPageData();
-
$links2 = $pager2->getLinks();
-
?>
通過配置$param,就能夠把鏈接 "/articles/march/art15.html"對(duì)應(yīng)到鏈接"/article.php?num=15&month=march" ,比較靈活的表現(xiàn)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。