Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 纯文本文件的奇异文件获取内容()行为&;没有分机?_Php_Exec_File Get Contents - Fatal编程技术网

Php 纯文本文件的奇异文件获取内容()行为&;没有分机?

Php 纯文本文件的奇异文件获取内容()行为&;没有分机?,php,exec,file-get-contents,Php,Exec,File Get Contents,在过去的几天里,我一直在开发一个本地应用程序,我注意到我的一个调用外部程序的“exec()”函数没有正确启动。经过进一步调查,很明显该程序确实执行了,但它过早退出了,因为使用“file_get_contents()”的重要行没有检索到指定文件的内容 该文件是无扩展名的纯文本文件。我猜“file\u get\u contents()”将文件视为目录,因为没有扩展名?这很奇怪,因为如果我从web浏览器手动执行相同的程序,一切都会完美地工作 为了清晰起见,这里有一行示例- while(file_get

在过去的几天里,我一直在开发一个本地应用程序,我注意到我的一个调用外部程序的“exec()”函数没有正确启动。经过进一步调查,很明显该程序确实执行了,但它过早退出了,因为使用“file_get_contents()”的重要行没有检索到指定文件的内容

该文件是无扩展名的纯文本文件。我猜“file\u get\u contents()”将文件视为目录,因为没有扩展名?这很奇怪,因为如果我从web浏览器手动执行相同的程序,一切都会完美地工作

为了清晰起见,这里有一行示例-

while(file_get_contents('plaintextfile') == "something"){
/// Do This
    }
当我从web浏览器访问/program.php时,上面的操作很好,但是当这样调用它时,它会给我一个文件/文件夹找不到的错误“plaintextfile”

exec('php /program.php', $output);

foreach($output as $output){
print $output . "<br>";
}
exec('php/program.php',$output);
foreach($output作为$output的输出){
打印$output。“
”; }

提前感谢任何能对这种情况有所了解的人。我真的很困惑…

从浏览器执行并由命令行执行的PHP(在
exec()
调用中)可能使用不同的PHP.ini配置,并且可能具有不同的文件搜索路径。最好的做法是提供
明文文件
的完整路径

if(!file_get_contents('/path/to/plaintextfile')){
   // file couldn't be read
}

我怀疑您的FS根目录中是否有program.php。试试./program.php(注意斜杠前的.php)文件相对于该脚本的位置是什么?哦,我只是为这篇文章简化了。我的程序中有完整的路径,它是/Library/WebServer/Documents/data/bla/bla/等等……噢,哇。我认为完整路径只在实际执行程序时才重要,一旦php找到program.php,无论如何调用它,它都会以相同的方式处理它。这成功了!