-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();
}

これは、WordPressからログを記録するためにローカル環境(MAMP)で常に使用している機能です。それは常に機能しました。今ではもう動作しません。理由を数日間理解しようとしましたが、解決策が見つかりませんでした。私は本当に高度なphpプログラマーではないので、私が知らないことやすべきことがあるかもしれません。誰か助けてくれませんか?

ちなみに、function_existsとfile_existsは、私が呼んでいるところからです。

4

1 に答える 1

1

なぜ機能しないfputsのかわかりません。おそらくサーバーのフォルダー権限(通常0755または安全)に関係している可能性があり、その可能性を排除するため0775にチェックする条件を追加することもできます。is_writableとを使ってみましfile_get_contentsたかfile_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 に答える