と同様SimpleXMLElement
に、PHP に同梱されている でTraversable
ページネーションを行うことができます。LimitItertor
製品要素の総数を取得するには、SimpleXMLElement::count()
関数を使用できます。
ページネーションは、他の何百もの質問で概説されているように機能します。LimitPagination
タイプを使用することをお勧めします。
現在のページ、要素の総数、およびページごとの要素を引数として取ります ( PHP 5.2 および Paginationも参照してください)。を提供するヘルパー関数もありますLimitIterator
。
例:
$products = $xml->product;
// pagination
$pagination = new LimitPagination($_GET['page'], $products->count(), 20);
foreach ($pagination->getLimitIterator($products) as $product) {
...
}
ページ間の移動を可能にするページャを出力したい場合LimitPagination
、たとえば現在のページをハイライト表示するすべてのページ (ここでは例として角かっこを使用) など、もう少し簡単にするための機能がさらに提供されます。
foreach ($pagination->getPageRange() as $page)
{
if ($page === $pagination->getPage()) {
// current page
printf("[p%d] ", $page);
} else {
printf("p%d ", $page);
}
}
foreach ($pagination->getPageRange() as $page)
{
if ($page === $pagination->getPage()) {
// current page
printf("[p%d] ", $page);
} else {
printf("p%d ", $page);
}
}
対話型オンライン デモ: http://codepad.viper-7.com/OjvNcO
非対話型オンライン デモ: http://eval.in/14176