使用 PHP 进行 XML 分页

2022-01-04 00:00:00 xml parsing php simplexml pagination

下面是我用来解析 XML 文件的代码,但是文件有很多记录,我想对它进行分页,每页显示 20 条记录.

Below is code I'm using to parse XML file, however file has many records and I want to paginate it, and display 20 records per page.

我还想要页面底部的分页链接,以便用户也可以转到其他页面.它应该是这样的,如果没有给出值,那么它将从 0 到 20 否则如果值为 2 从 40 开始并在 60 处停止,test.php?page=2.

I also want the pagination links at bottom of page so users can go to other pages as well. It should be something like, if no value is give then it will start from 0 to 20 else if value is 2 start from 40 and stop at 60, test.php?page=2.

$xml = new SimpleXMLElement('xmlfile.xml', 0, true);

foreach ($xml->product as $key => $value) {
    echo "<a href="http://www.example.org/test/test1.php?sku={$value->sku}">$value->name</a>";
    echo "<br>";
}

推荐答案

这样的事情应该可行:

<?php
    $startPage = $_GET['page'];
    $perPage = 10;
    $currentRecord = 0;
    $xml = new SimpleXMLElement('xmlfile.xml', 0, true);

      foreach($xml->product as $key => $value)
        {
         $currentRecord += 1;
         if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)){

        echo "<a href="http://www.example.org/test/test1.php?sku={$value->sku}">$value->name</a>";    

        //echo $value->name;

        echo "<br>";

        }
        }
//and the pagination:
        for ($i = 1; $i <= ($currentRecord / $perPage); $i++) {
           echo("<a href='thispage.php?page=".$i."'>".$i."</a>");
        } ?>

相关文章