2011-04-16 53 views
1

所以我想創建一個在我的網站上的下一個和上一個按鈕,我想我用相當通用的方式來處理它。我叫我的每個網頁是這樣的:PHP爆炸和變化的變量

1.PHP 2.PHP 3.php

因此形象地說,而在2.PHP,以前的鏈接將指向到1.php,下一個鏈接將指向3.php。

要在所有頁面上自動執行此過程,我試圖想出一個簡單的代碼來從當前文件名中加1和減1。

所以在PHP中,我這樣做:

<?php 
$dir = $_SERVER['PHP_SELF']; 
$dirchunks = explode("/", $dir); 
$current = $dirchunks[3]; 
?> 

$當前回聲出2.PHP,我在頁面上,反正是有加1或減1,同時保持與intacted .php爲變量$ current?所以$ current 2.php會變成3.php和1.php?

我希望我的問題沒有混淆,有人可以對我的情況有所瞭解。謝謝您的幫助!

+0

嗯,'$當前 - 1'和'$當前+ 1'?或者我誤解了這個問題? – 2011-04-16 09:41:25

+1

'$ current =「1.php」; $ current = $ current + 1; $ current = $ current.'php';' – 2011-04-16 09:44:17

+0

Shakti Singh:'「1.php」+ 1 == 0' – halfdan 2011-04-16 09:45:08

回答

0

請記住,將在第一頁和最後一頁的環繞,你應該使用basename獲取文件名,通過擴展作爲可選參數將剝離其關閉過,只留下頁面的數量:

$totalNumberOfPages = 3; 
$pageNumber = basename($_SERVER['PHP_SELF'], "php"); 
$nextPageNumber = (($pageNumber + 1) % $totalNumberOfPages) + 1; 
$previousPageNumber = (($pageNumber - 1) % $totalNumberOfPages) + 1; 

$dir = dirname($_SERVER['PHP_SELF']); 
$nextPage = $dir . "/" . $nextPageNumber . ".php"; 
$previousPage = $dir . "/" . $previousPageNumber . ".php"; 
+0

感謝您使用基本名稱後的詳細寫法,這是一些明顯的。 :d – 2011-04-16 09:57:13

1

您不應該由/爆炸。如果將腳本移動到另一個目錄會發生什麼?文件名不會在同一個塊中。使用basename從路徑中獲取文件名。

0
<?php 
$YOUR_MAX_COUNT = 10; 
$cur = basename($_SERVER['PHP_SELF'],".php"); 
$cur = (int)$cur; 
$i=1; 
for (; $i<$cur; $i++) 
    echo "<a href='$i.php'>$i</a>\n"; 
echo $i . " "; 
$i++; 
for (; $i<$YOUR_MAX_COUNT; $i++) 
    echo "<a href='$i.php'>$i</a>\n"; 
?>