2011-02-05 72 views
0

嗯,我開始討厭PHP。我有一個文件,它是完全可讀的(is_readable返回true),具有777權限,通常由fopen打開,但file_get_contents返回false。 的代碼如下: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

你已經用fopen打開它然後你試着用file_get_contents再次打開它...可能會因爲它已經被使用而被阻塞。閱讀它的內容,然後你可以打開它寫作。 – 2011-02-05 20:30:26

+1

'display_errors`是否設爲`on`? – 2011-02-05 20:31:02

+0

不是問題,但`if`應該檢查`strlen($ cnt)`而不是。 – mario 2011-02-05 20:35:00

回答

5

fopen("tres.txt","w+");截斷該文件。在此之後閱讀是沒有意義的。

$cnt很可能不是錯誤的,而是在布爾上下文中被認爲是false的空字符串''

if ($cnt !== false) echo "Good";可能會輸出「良好」。

4

使用file_get_contents時,不必使用fopen。刪除fopen

相關問題