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 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题