$file=file('DATA.txt');
我一直得到"failed to open stream "。没有这样的文件或目录在…"。当我在服务器和浏览器上运行它时,这是有效的。但是,当我使用命令行运行脚本时,出现错误。
首先深呼吸,喝杯茶;)
消息是:DATA.txt
只是一个文件名。
文件通常放在目录中。这听起来很愚蠢,好吧,这很愚蠢:什么是目录?
答案:当前工作目录。这在服务器和CLI之间是不同的。
所以最好加上你的目录:
$name = 'DATA.txt';
$dir = 'C:/';
$path = $dir.$name;
$file = file($path);
希望对大家有帮助
这个问题显然缺乏一些澄清,但有两个猜测:
- 由于您没有提供路径,因此预计该文件将位于当前目录,但服务器很可能以不同的用户(例如
web
)运行,并期望该文件位于该用户的主目录(或当前目录,准确地说)。 - 权限,一如既往。
我发现这是有效的:$fname=str_replace(basename(__FILE__),'',__FILE__).'DATA3.txt';
我不能简单地使用"dirname",因为我希望它在Windows和Linux('或/)中都能工作。