当前位置: 首页 > 知识库问答 >
问题:

PHP scandir和相对路径

上官琦
2023-03-14

我已经尝试了我在这里读到的所有解决方案,但似乎无法让它工作。

我正在尝试调用此文件中的scandir:https://www.example.com/cms/uploader/index.php

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

我不想硬编码这个例子。com部分,因为这将根据站点的不同而有所不同。我尝试了多种组合:dirname(文件)、DIR、$\u SERVER['SERVER\u NAME']和$\u SERVER['REQUEST\u 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;

正确的方法是什么?

共有2个答案

邢运良
2023-03-14

对不起,我不能写评论来问你一个问题(低声誉)。

就我从你的解释中了解到的,你想添加可能的文件夹名称,以使你的探针在某种程度上自动工作。

如果是的话,那么我就会这样做这样一段代码,

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

希望有帮助:)

钦耀
2023-03-14

$目录变量设置错误。如果你想去2个目录,使用Dilname()像这样:

$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的情况下使用它,但这主要是在本地/开发环境中。

 类似资料:
  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根

  • 本文向大家介绍Linux 相对路径和绝对路径的使用,包括了Linux 相对路径和绝对路径的使用的使用技巧和注意事项,需要的朋友参考一下 01. 概述 绝对路径和相对路径在shell环境中经常遇到,各有用处。有时候相对路径比较方便,有时候绝对路径比较方便。 02. 绝对路径(Absolute Pathname) 绝对路径必定由**/**开头 绝对路径是为档案/文件的所在位置做指向 在任何时候,都可以

  • 本文向大家介绍相对路径和绝对路径的写法总结,包括了相对路径和绝对路径的写法总结的使用技巧和注意事项,需要的朋友参考一下 在C#中 “\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。 只要在字符串前加上@即可直接使用“\”。所以上面的路径在C#中应该表示为“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。 相对路径使用“/”字符作为目录

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 本文向大家介绍java区分绝对路径和相对路径的方法,包括了java区分绝对路径和相对路径的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java区分绝对路径和相对路径的方法。分享给大家供大家参考。具体分析如下: 这里要区分的是目录路径 如: /opt/deve/tomcat/bin c:\deve\tomcat\bin 都是绝对目录路径 bin bin/data bin\data 都