2011-01-20 65 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) {