コード自体は非常に大きいため、煮詰めたバージョンを次に示します。
<?php
//set common headers
ob_start();
//generate the javascript source
$ret=ob_get_clean();
$handle=gzopen('cache/file.js.gz','wb');
gzwrite($handle,$ret);
gzclose($handle);
header('Content-Length: '.filesize('cache/file.js.gz'),true);
readfile('cache/file.js.gz');
楽しい部分。cache/file.js.gz
存在しない場合はreadfile('cache/file.js.gz');
、正しいサイズが報告されます。存在する場合は、ファイルの古いサイズが報告されます。
fflush($handle)
の後にgzwrite
同じ結果を追加しようとしました。書き込む前にファイルのリンクを解除しようとはしていません。余分なステップのようです。
通常、出力ファイルはかなり小さいです。最大は 5kB です。
サーバー情報:
- アパッチ バージョン 2.2.23
- PHP バージョン 5.2.17