2011-01-20 101 views
2

致歉這樣基本的問題,但我已經瘋了debuggind下面的代碼:基本PHP文件操作

$fname = 'results.txt'; 

$handle = fopen($fname,"a+"); 
if ($handle){ 
    $cnt = file_get_contents('./results.txt'); 
    $pos = strpos($cnt,":"); 
    if ($pos === 'false'){ 
     $str = htmlspecialchars($_COOKIE['username']).": ".$_COOKIE['score']; 
     fwrite($handle,$str); 
     } 
    if ($cnt) echo $cnt; 
    else echo 'Error in file_get_contents!<br />'; 
} 
else echo '<span>Error while opening file</span>'; 

$ CNT返回false,無論我做什麼。我試圖將參數更改爲'results.txt',完整的url文件 - 仍然沒有進展。我查閱了php.net上的函數,並從我所看到的語法是正確的。

謝謝你的時間。

P.S.代碼本身並不好(正則表達式適合這個任務),因爲我在急速寫下它,但我想在重寫之前讓它運行。

+1

是否打開了錯誤報告?嘗試`error_reporting(E_ALL);`在文件頂部 – 2011-01-20 00:41:21

+0

不要將html轉義的數據放在數據庫或類似數據庫的東西(如文本文件)中。輸出內容時可以這樣做。否則,如果某些時候需要未轉義的數據(例如明文電子郵件),則會出現問題。 – ThiefMaster 2011-01-20 00:43:50

回答

5

strpos返回布爾值false,而不是字符串值'false'。試試這個:

if ($pos === false) {