PHP scandir和相对路径

约翰

我已经尝试了在此阅读的所有解决方案,但似乎无法使其正常工作。

我试图在此文件中调用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']等。我要么得到“无法打开dir,但未在...中实现”错误或完全不显示任何内容。这是我正在使用的代码:

    $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;

正确的方法是什么?

安东尼奥·夏索拉斯(Antonio Chasouras)

$ directory变量设置错误。如果您想向上两个目录,请使用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一起使用,但这主要在本地/开发环境中进行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章