file_get_contents在现有可读文件上返回false

时间:2011-02-05 20:28:48

标签: php apache file-io

好吧,我开始讨厌PHP了。我有一个文件,它是完全可读的(is_readable返回true),具有777权限,通常由fopen打开,但file_get_contents返回false。 代码如下:

<?php
error_reporting(-1);
$handle = fopen("tres.txt","w+");
try{
$cnt = file_get_contents("/var/www/tres.txt");
}
catch(Exception $err){ echo $err->getMessage(); }
if ($handle) echo "Allright!", "<br />";
if ($cnt) echo "Good";
if(is_readable("/var/www/tres.txt")) echo " Is";
?>

即使我打开了我知道的所有错误报告选项,也没有发现任何错误,这让我很生气。将文件路径更改为“tres.txt”的“./tres.txt”也没有任何效果。 问题可能在哪里?

P.S。它运行在PHP5和apache2上。

2 个答案:

答案 0 :(得分:6)

fopen("tres.txt","w+");截断文件。在那之后阅读它是没有意义的。

$cnt很可能不是假的,而是在布尔上下文中被视为''的空字符串false

if ($cnt !== false) echo "Good";可能输出“Good”。

答案 1 :(得分:4)

使用fopen时,您不必使用file_get_contents。删除fopen