这是我目前的代码(我为我第一次尝试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客户端显示了一个屏幕抓取,显示了目录结构(下面)
所以我很困惑我在glob上做错了什么
www.markonsolutions.com/test.php是脚本所在的位置,如果单击它将返回找到的0个文件
答案 0 :(得分:6)
"/jobops/*.txt"
是*
nix上的绝对路径,如果你想指向与你需要使用的php脚本在同一目录中的目录:
"jobops/*.txt"
这是一条相对路径。
答案 1 :(得分:3)
如上所述
“/ jobops / *。TXT”
是绝对路径,因为它以“ / ”(斜杠)开头
相对路径是不以斜杠开头的路径,所以
“jobops / *。TXT”
“./ jobops / *。TXT”
“../ jobops / *。TXT”
都是相对的......重点是:相对于什么?
在操作系统上,它与环境变量PATH中枚举的目录相关 (通常当前工作的dir是第一个列在这个变量中的dir,导致错误的猜测“jobops / * .txt”被引用到当前目录中的jabops目录!)
在PHP中,就是你的环境,最好总是使用绝对路径,当然这并不意味着硬编码。
我建议您执行以下操作:
dirname(__FILE__).'/jobops/*.txt'
如何正确使用PHP中的路径
答案 2 :(得分:2)
可能是这样的:
$files = glob($_SERVER['DOCUMENT_ROOT']."/jobops/*.txt");
答案 3 :(得分:1)
如果您是从网络服务器运行的?可能是Web服务器的用户和组设置不允许访问其他目录吗?这是权限问题吗?检查Web服务器的error_log和access_logs以获取线索。