Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php没有';t扫描文件的相对路径_Php_File_Glob - Fatal编程技术网

php没有';t扫描文件的相对路径

php没有';t扫描文件的相对路径,php,file,glob,Php,File,Glob,这是我当前的代码(对于我第一次尝试php,我感到非常自豪) 问题是glob在根目录(这个脚本所在的目录)中仍然可以正常工作,但是当我将它指向一个特定的文件夹时,它返回0个找到的文件 我已经从我的ftp客户端抓取了一个屏幕,显示了目录结构(如下所示) 所以我不知道我在地球上做错了什么 是脚本所在的位置,如果单击它,将返回找到的0个文件 是*nix上的绝对路径,如果要指向与php脚本位于同一目录中的目录,则需要使用: "jobops/*.txt" 这是一个相对路径。可能类似于: $file

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


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

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

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

是脚本所在的位置,如果单击它,将返回找到的0个文件

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

"jobops/*.txt"
这是一个相对路径。

可能类似于:

$files = glob($_SERVER['DOCUMENT_ROOT']."/jobops/*.txt");

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

如前所述

“/joboops/*.txt”

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

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

“joboops/*.txt”

“/joboops/*.txt”

“./joboops/*.txt”

都是相对的。。。关键是:相对于什么?

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

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

我建议采取以下措施:

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

这就是如何在PHP中正确地使用路径,或者你可以使用“/joboops/*.txt”除此之外,确保运行PHP的用户可以访问该文件夹,而我不知道实际的OP系统,在错误
glob
的情况下,大多数操作系统都会返回
false
。我通常会做C#编程,所以我知道我想要的是什么,只是在这里和那里做一些小调整,以使其正常工作。再次感谢glob文档的帮助+1:*模式。没有进行波浪线展开或参数替换*
$files = glob($_SERVER['DOCUMENT_ROOT']."/jobops/*.txt");
dirname(__FILE__).'/jobops/*.txt'