Если у вас есть массив имен страниц, таких как показано ниже:
$array = ["home.php", "about.php", "contact.php"];
Пользователь попадет на «home.php» и будет иметь кнопку для перехода на следующую страницу, которая будет «about.php». Страница about будет иметь предыдущую кнопку с именем home.php и следующую кнопку с именем contact.php.
Я пытаюсь использовать для этого стек, выдвигая и выталкивая значения, но мне не везет. Я ценю, если кто-то предлагает альтернативы этому, но я хочу использовать стек.
Вы можете использовать array_search, чтобы найти местоположение текущей страницы внутри массива. Затем проверьте, есть ли у него соседи, например:
$array = ["home.php", "about.php", "contact.php"];
// Get the location of the current page in $array
$currentPageKey = array_search(basename($_SERVER['SCRIPT_NAME']), $array);
// See if there is a key prior to this. If so, get it's value
$previousPage = array_key_exists($currentPageKey - 1, $array)
? $array[$currentPageKey - 1]
: null;
// See if there is a key after this. If so, get it's value
$nextPage = array_key_exists($currentPageKey + 1, $array)
? $array[$currentPageKey + 1]
: null;
Тогда вы можете сделать что-то вроде
if (!is_null($previousPage)) {
echo '<a href="' . $previousPage . '">Previous</a>';
}
if (!is_null($nextPage)) {
echo '<a href="' . $nextPage . '">Next</a>';
}
Просто проверьте индекс массива текущей страницы и соответственно создайте предыдущие / следующие ссылки:
$array = ["home.php", "about.php", "contact.php"];
$cp = basename($_SERVER['PHP_SELF']);
$ci = array_search($cp, $array);
if($ci > 0){
echo '<a href="'.$array[$ci-1].'">Prev page</a>';
}
if($ci < count($array)-1){
echo '<a href="'.$array[$ci+1].'">Next page</a>';
}