我已经尝试了在此阅读的所有解决方案,但似乎无法使其正常工作。
我正在尝试在此文件中调用scandir: https://www.example.com/cms/uploader/index.php
列出此文件夹中的所有文件和目录: https://www.example.com/uploads/
我不想对example.com部分进行硬编码,因为这会因站点而异。我尝试了以下多种组合:dirname( FILE ), DIR ,$ _ SERVER ['SERVER_NAME']和$ _SERVER ['REQUEST_URI']等。我要么出现“无法打开目录,未在...中实现”错误或完全不显示任何内容。这是我正在使用的代码:
$directory = __DIR__ . '/../../uploads';
$filelist = "";
$dircont = scandir($directory);
foreach($dircont AS $item)
if(is_file($item) && $item[0]!='.')
$filelist .= '<a href="'.$item.'">'.$item.'</a>'."<br />\n";
echo $filelist;
执行此操作的正确方法是什么?
答案 0 :(得分:1)
$ directory变量设置错误。如果要向上2个目录,请使用dirname()如下:
$directory = dirname(__DIR__,2) . '/uploads';
$filelist = "";
$dircont = scandir($directory);
foreach($dircont AS $item) {
if(is_file($item) && $item[0]!='.')
$filelist .= '<a href="'.$item.'">'.$item.'</a>'."<br />\n";
}
echo $filelist;
您可以阅读有关scandir的更多信息,其中有一节介绍了如何在启用allow_url_fopen的情况下将其与url一起使用,但这主要是在本地/开发环境中进行的。
答案 1 :(得分:0)
对不起,我无法写评论问你一个问题(信誉低)。
据我从您的解释中了解到,您想添加可能的文件夹名称,以使您的探针能够自动工作。
如果是的话,那么我会做这样的一段代码;
$website = 'http://localhost/';
$folders = array('uploads','files', 'uploads/files');
$filelist = "";
foreach ($folders as $kinky)
$dircont = scandir($website.$kinky);
foreach ($dircont AS $item)
if (is_file($item) && $item[0] != '.')
$filelist .= '<a href="' . $item . '">' . $item . '</a>' . "<br />\n";
echo $filelist;
希望它会有所帮助:)