您都见过这样的页面
当您在服务器(或本地)上查看一个目录时,如果没有“索引”页面显示内容,但权限设置允许您查看目录内容时,就会出现这种情况。不同的浏览器对此有不同的处理方式。以下是 Fx3
它们都不是用户友好的典范,但也能用。毕竟,您可能只需要快速扫描内容并点击您要查找或感兴趣的内容即可。不过,这里还有一个更大的问题,那就是当您根本无法获得这些默认目录视图之一时。这可能有两个原因
- 您无法为该目录设置正确的权限。
- 您安装了 CMS,它更倾向于提供自定义 404 页面。
- 您的托管服务提供商出于某种原因不提供原始目录的查看功能(见下文)。
PHP 万岁
让我们依靠强大的 PHP 来解决这个问题。PHP 能够扫描目录并返回其内容,因此许多人利用此功能创建了一些非常不错的“目录列表”脚本。我查看了一些,但到目前为止,我见过的最好的一个是 Greg Johnson 的 PHP 目录列表器脚本:PHPDL v2。
只需将“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));
我发现它非常酷。一定会使用它。
谢谢你的提示。
我认为您应该尝试 INDXR。
这真是太棒了!我得试试它!
我认为这种解决方案最强大的论据是它全部包含在 index.php 文件中。像 Lukasz 建议的那样,INDXR 这样的解决方案需要更复杂的安装。
绝对值得拥有的一款工具!
您能否更新您的示例文件夹以包含一个子文件夹,以便我可以看到使用此方法的子文件夹是什么样子?谢谢 :)
这个脚本对我不起作用……:/
我没有文件名称,只有“.jpg”、“.tiff”、“.doc”等……
@tim:我更新了帖子以包含我从 Greg 本人那里获得的修复程序,因为我实际上也遇到了同样的问题。
我喜欢它。我可能会在我的网站上使用它。一个快速的问题。您使用什么程序(如果有的话)来获取文件或文件夹的 chmod 设置。
谢谢。
嗯,不错……
不过我现在觉得自己老了,因为我不得不谷歌你的网络俚语“FTW”才能知道它的意思。
James(不再与孩子们一起玩 :-()
这很酷,我从未想过要修饰我的目录列表
这个魔术技巧太糟糕了!!!
谢谢这个!我一直在寻找如此简单优雅的东西,到目前为止,这绝对是最好的解决方案。
虽然我已经启用了目录列表,但我绝对想美化它的显示方式,并且绝对会使用它。谢谢!:D
很棒的脚本。感谢与我们分享这个东西!
出于安全考虑,除非您需要目录列表,否则请不要启用它或提供解决方法。当然,如果您确实需要的话。
我想在我的 iphone 上使用它,所以我对其进行了一些修改,使其能够正确格式化。我遇到了一些问题,希望能够得到一些帮助。年龄部分显示不正确的时间,并且当您旋转显示屏然后恢复直立时,文本格式不正确。
这是我所拥有的链接。
很棒的脚本,除了 .flv 和 .mp3 播放器在 Safari(或 Chrome)中不起作用……
:N
这是一个适用于网络上任何人的很棒的工具。我已经在目录中实现了它,以便与朋友分享一些照片,但我遇到了一些问题。
文件名最初没有显示……Chris,你的代码解决方案,当我意识到它存在时,起作用了。
文件名开始显示后,我意识到灯箱功能无法正常工作。
也许我做错了什么,但我希望听到是否可以进行代码修改来使其正常工作。这是这项服务中最酷的事情。
一如既往,Chris,感谢你与我们分享这些绝妙的技巧和工具。继续努力!
这很棒,尽管我确实有一些抱怨(就像我应该抱怨的那样)……
对于具有 .htaccess 文件以启用此目录密码保护的文件夹怎么办?此外,是否有任何方法可以编辑样式?
无论如何,这是一个很棒的脚本。感谢你发布这个。
感谢你不仅提供了这个小技巧,还提供了关于显示完整文件名的更新。我遇到了同样的问题;)
PHP DL 的网站已经离线一段时间了。但是,有两个基于它的替代方案
Listr:尽管自 2010 年以来就没有更新过
Bootstrap Listr:Listr 的一个更新的 fork,完全使用 Bootstrap 构建,并支持 Bootswatch 主题和更多文件类型