0

这是我当前的代码(我为我第一次尝试 php 感到非常自豪)

<?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 个找到的文件

替代文字

4

4 回答 4

6
"/jobops/*.txt"

是 nix 上的绝对路径*,如果您想指向与您需要使用的 php 脚本位于同一目录中的目录:

"jobops/*.txt"

这是一个相对路径。

于 2009-09-02T15:19:33.763 回答
3

如前所述

“/jobops/*.txt”

是绝对路径,因为它以“ / ”(斜杠)开头

相对路径是那些不以斜杠开头的路径,所以

“jobops/*.txt”

“./jobops/*.txt”

“../jobops/*.txt”

都是相对的……重点是:相对于什么?

在操作系统上,它与环境变量 PATH 中枚举的目录相关(并且通常当前工作目录是此变量中列出的第一个目录,导致错误猜测“jobops/*.txt”指的是 jabops 目录当前目录!)

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

我建议执行以下操作:

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

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

于 2009-09-02T15:39:03.460 回答
2

也许是这样的:

$files = glob($_SERVER['DOCUMENT_ROOT']."/jobops/*.txt");
于 2009-09-02T15:19:51.800 回答
1

如果您从 Web 服务器运行它?难道是网络服务器的用户和组设置不允许访问其他目录?这是权限问题吗?检查 Web 服务器的 error_log 和 access_logs 以获取线索。

于 2009-09-02T15:27:03.577 回答