PHP взорваться и изменить переменные - PullRequest
1 голос
/ 16 апреля 2011

Итак, я пытаюсь создать следующую и предыдущую кнопки на своем веб-сайте, и я подумал, что подхожу к этому довольно общим образом. Я назвал каждую из своих страниц следующим образом:

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];
?>

$ current echos out 2.php, страница, на которой я сейчас нахожусь, есть ли способ добавить 1 или минус 1, сохраняя при этом .php с переменной $ current? поэтому $ current 2.php изменится на 3.php и 1.php?

Я надеюсь, что мой вопрос не сбивал с толку, и кто-то может пролить свет на мою ситуацию. Спасибо за помощь!

Ответы [ 3 ]

1 голос
/ 16 апреля 2011

Вы не должны взрываться на /. Что произойдет, если вы переместите свой скрипт в другой каталог? Имя файла не будет в той же части. Используйте basename, чтобы получить имя файла из пути.

0 голосов
/ 16 апреля 2011
<?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";
?>
0 голосов
/ 16 апреля 2011

Помните, что на первой и последней страницах будет отображаться перенос, и вы должны использовать 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";
...