过去几天我一直在研究一个本地应用程序,我注意到我调用外部程序的'exec()函数之一没有正确启动。经过进一步调查后,很明显程序确实执行了,但它过早地退出了,因为使用'file_get_contents()'的重要行没有检索到指定文件的内容。
该文件是没有扩展名的纯文本文件。我猜'file_get_contents()'将文件视为目录,因为没有扩展名?这很奇怪,因为如果我从网络浏览器手动执行相同的程序,一切都很完美。
为清晰起见,这是一个示例行 -
while(file_get_contents('plaintextfile') == "something"){
/// Do This
}
当我从网络浏览器访问/program.php时,上面的工作正常,但是当它这样调用时,它会给我一个'plaintextfile'找不到文件/文件夹的错误。
exec('php /program.php', $output);
foreach($output as $output){
print $output . "<br>";
}
提前感谢任何可以了解这种情况的人。我真的很困惑......
答案 0 :(得分:1)
从浏览器执行并由命令行执行的PHP(在exec()
调用中)可能使用不同的php.ini配置,并且可能具有不同的文件搜索路径。最好的做法是提供plaintextfile
的完整路径。
if(!file_get_contents('/path/to/plaintextfile')){
// file couldn't be read
}