PHP scandir 和相对路径
PHP scandir and relative path
我已经尝试了我在此处阅读的所有解决方案,但似乎无法使它起作用。
我正在尝试在此文件中调用 scandir:
https://www.example.com/cms/uploader/index.php
列出此文件夹中的所有文件和目录:
https://www.example.com/uploads/
我不想对 example.com 部分进行硬编码,因为这会因站点而异。我试过很多组合:dirname(FILE), DIR, $_SERVER['SERVER_NAME'], and $_SERVER['REQUEST_URI'],等等。我要么收到 "failed to open dir, not implemented in..." 错误,要么什么都不显示。这是我正在使用的代码:
$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;
执行此操作的正确方法是什么?
抱歉,我无法写评论来问你一个问题(低信誉)。
据我从你的解释中了解到,你想添加可能的文件夹名称以使你的探测在某种程度上自动工作。
如果是,那么我会做这样一段代码;
$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;
希望对您有所帮助:)
$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 一起使用,但这主要是在 local/development 环境中。
我已经尝试了我在此处阅读的所有解决方案,但似乎无法使它起作用。
我正在尝试在此文件中调用 scandir: https://www.example.com/cms/uploader/index.php
列出此文件夹中的所有文件和目录: https://www.example.com/uploads/
我不想对 example.com 部分进行硬编码,因为这会因站点而异。我试过很多组合:dirname(FILE), DIR, $_SERVER['SERVER_NAME'], and $_SERVER['REQUEST_URI'],等等。我要么收到 "failed to open dir, not implemented in..." 错误,要么什么都不显示。这是我正在使用的代码:
$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;
执行此操作的正确方法是什么?
抱歉,我无法写评论来问你一个问题(低信誉)。
据我从你的解释中了解到,你想添加可能的文件夹名称以使你的探测在某种程度上自动工作。
如果是,那么我会做这样一段代码;
$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;
希望对您有所帮助:)
$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 一起使用,但这主要是在 local/development 环境中。