不能使用PHP CLI读取文件


Can't read files using PHP CLI

$file=file('DATA.txt');

我一直得到"failed to open stream "。没有这样的文件或目录在…"。当我在服务器和浏览器上运行它时,这是有效的。但是,当我使用命令行运行脚本时,出现错误。

首先深呼吸,喝杯茶;)

消息是:DATA.txt只是一个文件名。

文件通常放在目录中。这听起来很愚蠢,好吧,这很愚蠢:什么是目录?

答案:当前工作目录。这在服务器和CLI之间是不同的。

所以最好加上你的目录:

$name = 'DATA.txt';
$dir = 'C:/';
$path = $dir.$name;
$file = file($path);

希望对大家有帮助

这个问题显然缺乏一些澄清,但有两个猜测:

  1. 由于您没有提供路径,因此预计该文件将位于当前目录,但服务器很可能以不同的用户(例如web)运行,并期望该文件位于该用户的主目录(或当前目录,准确地说)。
  2. 权限,一如既往。

我发现这是有效的:$fname=str_replace(basename(__FILE__),'',__FILE__).'DATA3.txt';我不能简单地使用"dirname",因为我希望它在Windows和Linux('或/)中都能工作。