php分页应该从1开始而不是0

时间:2015-11-22 15:47:36

标签: php pagination

这是我从xml文件下载和分页数据的功能。     

<?php 
function get_feed_posts($link) {

        if(!isset($_GET['page'])) {
            $_GET['page'] = 0;
        }

        $startPage = $_GET['page'];
        $perPage = 13;
        $currentRecord = 0;
        $xml = new SimpleXMLElement($link, 0, true);

        foreach($xml->results->result as $item) {
            $currentRecord += 1;
            if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)) {
        ?>
            <li><a class="go-to" href="<?php echo $item->click_url;?>" title="<?php echo $item->name;?>">Go to store</a></li>

        <?php

            }

        }

        for ($i = 0; $i <= ($currentRecord / $perPage); $i++) {
            $n=$i+1;
            echo("<a href='?page=".$n."'>".$n."</a>");
        }

} ?>

此代码效果很好。但我希望我的网页从?page=1开始,现在此代码从?page=0

开始

1 个答案:

答案 0 :(得分:1)

这个怎么样?

<?php 
function get_feed_posts($link) {

    if(!isset($_GET['page'])) {
        $_GET['page'] = 1; // changed this line
    }

    $startPage = ($_GET['page'] < 1) ? 0 : $_GET['page'] - 1;  // changed this line
    $perPage = 13;
    $currentRecord = 0;
    $xml = new SimpleXMLElement($link, 0, true);

    foreach($xml->results->result as $item) {
        $currentRecord += 1;
        if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)) {
    ?>
        <li><a class="go-to" href="<?php echo $item->click_url;?>" title="<?php echo $item->name;?>">Go to store</a></li>

    <?php

        }

    }

    for ($i = 0; $i <= ($currentRecord / $perPage); $i++) {
        $n=$i+1;
        echo("<a href='?page=".$n."'>".$n."</a>");
    }

} ?>

请注意,x中小于1的任何?page=x都会被视为0,但您可以做得更好(抛出错误?重定向到?page=1?)。