改进默认目录视图

Avatar of Chris Coyier
Chris Coyier 发布

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费信用额度!

您都见过这样的页面

当您在服务器(或本地)上查看一个目录时,如果没有“索引”页面显示内容,但权限设置允许您查看目录内容时,就会出现这种情况。不同的浏览器对此有不同的处理方式。以下是 Fx3

它们都不是用户友好的典范,但也能用。毕竟,您可能只需要快速扫描内容并点击您要查找或感兴趣的内容即可。不过,这里还有一个更大的问题,那就是当您根本无法获得这些默认目录视图之一时。这可能有两个原因

  • 您无法为该目录设置正确的权限。
  • 您安装了 CMS,它更倾向于提供自定义 404 页面。
  • 您的托管服务提供商出于某种原因不提供原始目录的查看功能(见下文)。

PHP 万岁

让我们依靠强大的 PHP 来解决这个问题。PHP 能够扫描目录并返回其内容,因此许多人利用此功能创建了一些非常不错的“目录列表”脚本。我查看了一些,但到目前为止,我见过的最好的一个是 Greg Johnson 的 PHP 目录列表器脚本:PHPDL v2

查看 CSS-Tricks 上的演示目录

只需将“index.php”文件放入您希望查看的任何目录中,在浏览器中导航到该目录,它就会使您的目录看起来像这样

那么 Greg 的 PHPDL v2 有什么特别之处呢?

  • 它是一个单文件。只需将其放入任何目录即可。
  • 它在文件上次修改时间方面具有简洁的纯文本措辞
  • 非常简单,但设计美观
  • 但最棒的是,它支持查看各种不同类型的文件。您可以在我上面的演示目录中看到我有多种不同的多媒体文件类型。单击它们以查看它们。内置的 MP3 播放器、内置的电影播放器以及图像的内置模态框。

我已经发现这非常有用。最近我想与朋友分享一些 MP3。只需将它们放入目录,然后将此脚本放入其中,并向他们发送链接。您可以用同样的方式分享照片或任何其他东西。这就像懒人网页!

更新:文件名问题?

如果您正在使用此脚本并且遇到它仅显示文件扩展名而不显示文件名的麻烦,请尝试在第 213 行左右将变量 name 和 lname 替换为此

$item['name']           =       str_replace('.'.$info['extension'], '', $file);
$item['lname']          =       strtolower(str_replace('.'.$info['extension'], '', $file));