PHP SCANDIR和相对路径

问题描述 投票:1回答:2

我已经尝试了所有我看了这里的解决方案,但似乎无法得到这个工作。

我想打电话给SCANDIR在这个文件:https://www.example.com/cms/uploader/index.php

列出所有的文件和目录此文件夹中:https://www.example.com/uploads/

我不想硬编码example.com的部分,因为这将取决于在网站上是不同的。我试过的多种组合:目录名(文件),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;

什么是这样做的正确方法?

php scandir
2个回答
1
投票

在$目录变量设置错误。如果你想要去的2节目录了使用目录名()是这样的:

$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使用一节,但是这主要是在本地/开发环境。


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;

希望能帮助到你 :)

© www.soinside.com 2019 - 2024. All rights reserved.