奇怪的file_get_contents()行为与纯文本文件&没有延期?

时间:2011-10-24 15:39:49

标签: php exec file-get-contents

过去几天我一直在研究一个本地应用程序,我注意到我调用外部程序的'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>";
}

提前感谢任何可以了解这种情况的人。我真的很困惑......

1 个答案:

答案 0 :(得分:1)

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

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