-2

我的代码:

function log_this($to_log, $prepend = null){

    ob_start();
    $fn = '../info.log';        
    $fp = fopen($fn, 'a');

    fputs($fp, "\r\rnew log -------- \r\r");

    if(isset($prepend)) fputs($fp, $prepend . ":\r\r");

    var_dump($to_log);
    $content = ob_get_contents();

    fputs($fp, $content);
    fclose($fp);
    ob_end_clean();
}

这是我在本地环境 (MAMP) 中经常使用的功能,用于从 wordpress 中记录内容。它总是有效的。现在它不再起作用了。我试图理解为什么几天但找不到任何解决方案。我不是一个真正高级的 php 程序员,所以也许有一些我不知道和应该的东西.. 任何人都可以帮助我吗?

顺便说一句,function_exists 和 file_exists,我称之为它。

4

1 回答 1

1

我不确定为什么fputs不起作用,这可能与您的服务器文件夹权限有关(通常07550775安全),也可以添加一个条件来检查is_writable以消除这种可能性。您是否尝试过使用file_get_contentsfile_put_contents

define('FILE_PATH', 'path/to/file/file.log'); 
    function log_this($command, $array = null) {
    //check if we can get to the file
    if(file_exists(FILE_PATH)){
    $current = file_get_contents(FILE_PATH);
    $current .= $command;
    if(!is_null($array)){
    ob_start();print_r($array);$output = ob_get_clean();
    $current .= $output;
    }
    file_put_contents(FILE_PATH, $current);
    }
 }
于 2012-09-02T09:50:16.413 回答