私のサイトでは、すべてのファイルが指定されたフォルダーに正しくキャッシュされていますが、これらのフォルダーに格納されているファイルが多すぎます。キャッシュ フォルダーを、ファイル名の最初の文字を含むサブ ディレクトリに分割し、そこからさらに分割することを考えていました。
以下に示すように、圧縮バージョンは「gz」フォルダーに保存され、通常のキャッシュは「html2」フォルダーに保存されます。
コード:
if ( $cache ) {
#header("Content-Type: text/html");
// get the buffer
$buffer = ob_get_contents();
#$length = ob_get_length();
#header('Content-Length: '.$length);
// end output buffering, the buffer content
// is sent to the client
ob_end_flush();
// now we create the cache file
if (!file_exists($pathName)) {
mkdir($pathName, 0755, true);
}
if (!file_exists(str_replace('/html/html2/', '/html/gz/', $pathName))) {
mkdir(str_replace('/html/html2/', '/html/gz/', $pathName), 0755, true);
}
$compressed = preg_replace('%<!--(.|\s)*?-->%', '', $buffer);
$compressed = sanitize_output($compressed);
$encoded = gzencode($compressed, 9);
file_put_contents($file, $compressed);
file_put_contents(str_replace('/html/html2/', '/html/gz/', str_replace('.html', '.gz', $file)), $encoded);
}
上記のコードに基づくと、現在のキャッシュ ファイルのパスは次のとおりです。
/html2/New-York-Hotels.html
/gz/New-York-Hotels.gz
理想的には、キャッシュされたファイルの場所は次のようになります。
/html2/N/New-York-Hotels.html
/gz/N/New-York-Hotels.gz
あなたの助けは大歓迎です! 前もって感謝します。