【问题标题】:Basic PHP file manipulation基本的 PHP 文件操作
【发布时间】:2011-01-20 08:46:01
【问题描述】:

为这样的基本问题道歉,但我已经疯狂调试以下代码:

$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 上查找了该函数,从我看到的情况来看,语法是正确的。

感谢您的宝贵时间。

附:代码本身并不好(例如,正则表达式更适合此任务),因为我匆忙编写它,但我想在重写之前让它运行。

【问题讨论】:

  • 错误报告是否开启?在文件顶部试试error_reporting(E_ALL);
  • 不要将 html 转义的数据放入数据库或类似数据库的东西(如文本文件)中。你可以在输出东西时这样做。否则,如果您在某些时候需要未转义的数据(例如对于纯文本电子邮件),就会遇到问题。

标签: php file-manipulation


【解决方案1】:

strpos 返回布尔值false,而不是'false' 的字符串值。试试这个:

if ($pos === false) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多