0

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

/portfolio/a-company-name.php  
/portfolio/another-company-name.php  
/portfolio/yet-another-company-name.php

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

我认为唯一的小障碍可能发生在目录中的第一个和最后一个文件上。所以我想如果目录中实际上有下一个/上一个文件,则必须有某种“if 语句”才能构建下一个/上一个链接。或者,更好的是,它会无限循环到哪里……例如,如果您在目录中的最后一个文件上,并且“下一个”链接将简​​单地转到第一个文件。

4

2 回答 2

1
  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";
}
于 2019-05-28T15:41:51.243 回答
0

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

于 2015-07-28T01:21:02.817 回答