代码之家  ›  专栏  ›  技术社区  ›  Crash893

php不扫描文件的相对路径

  •  0
  • Crash893  · 技术社区  · 16 年前

    <?php
    $files = glob("/jobops/*.txt");
    $indexcount = count($files);
    sort($files);
    print("<br>"+$indexcount+"<br>");
    foreach ($files as &$file)
    {
        print("<a href=\"$file\">$file</a><br>");
    }
    ?>
    

    问题是glob在根目录(这个脚本所在的目录)中仍然可以正常工作,但是当我将它指向一个特定的文件夹时,它返回0个找到的文件。

    我已经从我的ftp客户端抓取了一个屏幕,显示了目录结构(如下所示)

    所以我不知道我在地球上做错了什么

    www.markonsolutions.com/test.php 是脚本所在的位置,如果单击它,将返回找到的0个文件

    alt text

    4 回复  |  直到 7 年前
        1
  •  6
  •   SilentGhost    16 年前
    "/jobops/*.txt"
    

    这是一条绝对的道路 * nix,如果要指向与php脚本位于同一目录中的目录,则需要使用:

    "jobops/*.txt"
    

        2
  •  3
  •   drAlberT    16 年前

    如前所述

    是一个绝对路径,因为它以“ /

    “joboops/*.txt”

    “/joboops/*.txt”

    “./joboops/*.txt”

    相对于什么?

    (通常,当前工作目录是该变量中列出的第一个目录,导致错误猜测“jobops/*.txt”指的是当前目录中的jabops目录!)

    在PHP环境中,最好始终使用绝对路径,当然这并不意味着要硬编码它们。

    dirname(__FILE__).'/jobops/*.txt'
    

    那是 如何在PHP中正确使用路径

        3
  •  2
  •   John Boker    16 年前

    $files = glob($_SERVER['DOCUMENT_ROOT']."/jobops/*.txt");
    
        4
  •  1
  •   Scott Lundberg    16 年前

    如果您是从web服务器运行此功能?可能是web服务器的用户和组设置不允许访问其他目录?这是权限问题吗?检查web服务器的错误日志并访问日志以获取线索。

    推荐文章