0

キャッシュを作成したい。私のphpインデックスの冒頭で、私は以下を使用します:

if ($docache) {
    $folder_cache = dirname(__FILE__).'/cache/';
    $seconds_cache = 15*60; // 15 minutes
    $url_cache = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $file_cache = $folder_cache . md5($url_cache) . '.cache';
    $file_cache_existe = ( @file_exists($file_cache) ) ? @filemtime($file_cache) : 0;    
    if ($file_cache_existe > time() - $seconds_cache ) {
        @readfile($file_cache);
        exit();
    }
}
ob_start();

次に、最後に:

if ($docache) {
    $folder_cache = dirname(__FILE__).'/cache/';
    $url_cache = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $file_cache = $folder_cache . md5($url_cache) . '.cache';   
    $filehandler = @fopen($file_cache, 'w');    
    @fwrite($filehandler, ob_get_contents());
    @fclose($filehandler);
}

まあ、うまくいきます...ページを初めて表示したときにキャッシュファイルが作成され、戻ってキャッシュにファイルが表示されます...問題は、キャッシュ内のファイルに読み取り不能な文字しか含まれていないことです ��<�r㶒�V��のように。

ob_get_contents 関数が実際に表示されているものではなくそれを返す場合のように思えますか? 理由が本当にわかりません!

4

1 に答える 1

1

エラー抑制を削除し、出力が何であるかを調べることから始めることができます。

文字エンコードの問題が発生している可能性があります。

于 2013-04-23T15:06:48.240 に答える