状況
私は自分の Web サイト用に開発されたキャッシュを持っています。現在、各ページ要求をチェックして、ページの静的なキャッシュ バージョンがあるかどうかを確認し、ブラウザーがサポートされている場合は、ページを gzip してブラウザーに返します。
現在のコード
$hash = md5('http://mydomain.com'.$url);
$fl = substr($url, 1, 1);
if(file_exists('/home/myaccount/public_html/cache/'.$fl.'/'.$hash.'.html') && $_GET['cache'] != 'off' && $fl!=''):
ob_start("ob_gzhandler");
header('Content-type: text/html; charset=utf-8');
include 'cache/'.$fl.'/'.$hash.'.html';
elseif(file_exists('/home/myaccount/public_html/cache/'.$hash.'.html') && $_GET['cache'] != 'off'):
ob_start("ob_gzhandler");
header('Content-type: text/html; charset=utf-8');
include 'cache/'.$hash.'.html';
else:
$_SERVER['REQUEST_URI'] = str_replace('?cache=off','',$_SERVER['REQUEST_URI']);
include 'interface/index.php';
endif;
望ましい変化
サーバー上のファイルが既にgzipされているように変更したいと思います。ファイルをgzipしてサーバーに設定する方法はすでに知っています。ただし、スクリプトのこの部分を変更して、ブラウザーで gzip がサポートされているかどうかを確認し、gzip で圧縮されたバージョンのファイルを渡すようにする方法を知りたいです。サポートされていない場合は、gzip を解凍してサーバーに返します。
目的
これにより、いくつかのことが達成されます。まず、ファイルを保存するためにサーバー上で使用するスペースが少なくなります。次に、ほとんどのブラウザーが gzip 形式を受け入れるため、ページ要求ごとに gzip する必要がないため、時間を数ミリ秒短縮できます。代わりに、サポートされていないごく少数のブラウザーのファイルを解凍するだけで済みます。3 つ目は、php が gzip 圧縮されたファイルを処理する方法について詳しく学ぶ機会です。