我有一个网站,其中包含俱乐部的记录。每天的记录都存储在自己的文件中,格式为 yyyymmdd.php(我使用 PHP include 来减少重复代码的数量)。
每个记录页面都有前一天、索引和后一天的链接。我是否可以编写一些代码,使前一天和后一天的链接自动转到目录中上一个和下一个日期的文件,而不必手动输入文件名?比如:
<a href=*automatic link to previous day*>Previous</a>
第二天也一样,而不是:
<a href="20240427.php">Previous</a>
.
并不是每一天都有自己的记录,所以这并不像简单地在日历中向前或向后循环那么简单。
我已尝试使用答案 1 的代码来解决这个问题。
但是,虽然它适用于目录中的第一页,但后续页面的行为就好像它们仍然是第一页一样:$currentIdx 保持为 0,并且“下一天”链接始终链接到第二天,而不是第三天,第四、第五等
我找到了自己问题的答案。我没有使用链接的答案来创建数组,而是使用了 scandir()。我的代码如下:
$dirPath = '/path/';
$dir = $_SERVER['DOCUMENT_ROOT'].$dirPath;
$fileList = scandir($dir);
$currPage = $_SERVER['REQUEST_URI'];
$currFile = substr($currPage, -12);
$numFiles = count($fileList);
$arrIdx = 0;
for($i = 0; $i < $numFiles; $i++)
{
if($fileList[$i] == $currFile)
{
$arrIdx = $i;
}
}
$nextFile = $dirPath;
$nextFileIdx = $arrIdx + 1;
if($arrIdx < $numFiles)
{
$nextFile .= $fileList[$nextFileIdx];
echo '<a class="nodecs" style="margin-left: 20px" href="'.$nextFile.'"><span class="ghost-button">Next Day</span></a>';
}
else
{
echo '<span class="ghost-button">No Next Day</span>';
}
我还导出了一个稍微调整的版本,在每个页面上也有“前一天”的链接。