1 回答

TA貢獻1946條經(jīng)驗 獲得超3個贊
嘿,大灰!
你快到了。你只需要檢查幾件事:
在頁數(shù)開始或結(jié)束的兩頁內(nèi)是 $i。這很容易,對吧?
if ($i <= 2 || $i >= $count_pages - 2)
$i 是否在當前頁面的兩頁之內(nèi)?
這是通過
if (abs($i - $page) <= 2)
所以現(xiàn)在問題仍然存在:什么時候放省略號?
如果每次不滿足上述條件時都只 echo '...' ,您最終會得到一大堆省略號,對吧?
此外,您可能需要兩個省略號(假設(shè)有 20 頁并且您在第 10 頁。您需要 '1 2 ... 8 9 10 11 12 ... 19 20)。
我確信有一種更優(yōu)雅的方法,但我只使用一個標志 ($outOfRange),當滿足上述任何條件時設(shè)置為 false,但在不滿足時設(shè)置為 true。然后我們僅在不滿足條件但 $outOfRange 仍然為 false 時回顯 '...'。所以我們有:
$outOfRange = false;
for($i = 1; $i <= $count_pages; $i++) {
if ($i <= 2 || $i >= $count_pages - 2 || abs($i - $page) <= 2) {
// page number should be echoed so do as you did before
$outOfRange = false;
if($i == $page) {
echo "<li><a class='active-page' href='./latest.php?page=$i'>$i</a></li>";
} else {
echo "<li><a href='./latest.php?page=$i'>$i</a></li>";
}
} else {
// we are out of range! if not already out of range, echo ellipsis
if (!$outOfRange) {
echo ' ... ';
}
$outOfRange = true;
}
}
- 1 回答
- 0 關(guān)注
- 172 瀏覽
添加回答
舉報