PHP - 转到目录中的Next或Previous文件

时间:2015-07-28 01:08:12

标签: php directory next filemtime

我们正在制作一个包含以下目录的页面组合:

sectionInfo

我们希望在每个页面上构建“下一个”和“上一个”链接,人们可以在其中导航到目录中的下一页或上一页。有什么想法吗?

我认为目录中的第一个和最后一个文件可能会出现唯一的小问题。所以我想如果目录中实际存在下一个/上一个文件,那么必须有某种“if语句”来构建下一个/上一个链接。或者,更好的是,它会无限循环....例如,如果你在目录中的最后一个文件,而“下一个”链接只是转到第一个文件。

2 个答案:

答案 0 :(得分:0)

有这个功能scandir()。这将获取数组中目录中的所有文件。因此,您可以循环浏览或选择下一个文件。 Documentation: http://php.net/manual/en/function.scandir.php

答案 1 :(得分:0)

  1. 使用glob函数查找目录中的所有php文件,并将其保存到数组中。 2.接下来,通过当前文件的名称,在文件数组中找到其索引,并加1以获取下一个文件的名称。

    $page = dirname(__FILE__) . '/portfolio'.$_SERVER['REQUEST_URI'].'.php'; $files = glob(dirname(__FILE__) . '/portfolio/*.php'); $currentIdx = array_search($page, $files); $nextIdx = $currentIdx + 1; if (isset($files[$nextIdx])) { $nextFile = $files[$nextIdx]; $next = pathinfo($nextFile,PATHINFO_FILENAME); echo 'Next file: <a href="'.$next.'">'.$next.'</a>'; } else { echo "No next file"; }

先前类似:

$page = dirname(__FILE__) . '/portfolio'.$_SERVER['REQUEST_URI'].'.php';
$files = glob(dirname(__FILE__) . '/portfolio/*.php');
$currentIdx = array_search($page, $files);
$prevIdx = $currentIdx - 1;
if (isset($files[$prevIdx])) {
    $prevFile = $files[$prevIdx];
    $prev = pathinfo($prevFile,PATHINFO_FILENAME);
    echo 'Previous file: <a href="'.$prev.'">'.$prev.'</a>';
} else {
    echo "No previous file";
}