donglian4464 2012-11-28 15:06
浏览 63
已采纳

PHP fread没有返回字符串

    log_email("email to: " . $to . " at: " . $time);
}

function log_email($message){
    $dir = dirname(__FILE__);
    $filename = $dir . "/logs/email_log.txt";       
        echo $filename;

    if(is_readable($filename)){        
        $handle = fopen($filename, "w+");
        $contents = fread($handle, filesize($filename));
        fwrite($handle, $message . "
" . $contents);
        fclose($handle); 
    }else{
        echo 'The file is not readable.';
    }
}

The file has 777 access, the file contains some text. I get a warning up saying: Warning: fread(): Length parameter must be greater than 0 in ...

$contents variable ends up containing nothing? Any ideas? The directory must be correct because if i delete the file, my is_readable returns false.

  • 写回答

1条回答 默认 最新

  • douaoj0994 2012-11-28 15:23
    关注

    You are truncating the file when you initially open it with this line.

    $handle = fopen($filename, "w+");
    

    So the size will be zero at that point triggering that warning.

    You should probably do something like this:

    function log_email($message){
        $dir = dirname(__FILE__);
        $filename = $dir . "/logs/email_log.txt";       
            echo $filename;
    
        if(is_readable($filename)){        
            // This will append to the file without destroying its contents
            $handle = fopen($filename, "a+"); 
            fwrite($handle, $message . "
    ");
            fclose($handle); 
        }else{
            echo 'The file is not readable.';
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算