PHP爆炸和改变变量

时间:2011-04-16 09:37:51

标签: php string variables numbers explode

所以我试图在我的网站上创建下一个和上一个按钮,我想我以一种相当通用的方式来处理它。我将每个页面命名为:

1.PHP 2.PHP 3.php

等等

所以比喻说,在2.php上,前一个链接指向1.php,下一个链接指向3.php。

要在所有页面上自动执行此过程,我试图想出一个简单的代码,从当前文件名中添加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 个答案:

答案 0 :(得分:1)

你不应该/爆炸。如果将脚本移动到另一个目录会发生什么?文件名不会在同一个块中。使用basename从路径中获取文件名。

答案 1 :(得分: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";

答案 2 :(得分: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";
?>