【问题标题】:PHP - go to Next or Previous file in directoryPHP - 转到目录中的下一个或上一个文件
【发布时间】:2015-10-18 09:23:37
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我不会为每个“公司”使用一个文件一个文件一个数据库查找等是更好的方法 - 如果您刚开始我建议寻找免费的 CMS

标签: php directory next filemtime


【解决方案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";
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 2018-05-02
      • 2012-10-11
      • 1970-01-01
      • 2021-01-24
      • 2012-01-07
      • 2016-05-07
      • 1970-01-01
      相关资源
      最近更新 更多