私はすべてのファイルがphpファイルであるサイトを持っています。サーバー上には、フレンドリーなURL、つまり/aboutの書き換えを行うhtaccessもあります
JS と CSS の PHP による縮小は既に行われていますが、HTML が実際のページにあるという事実により、php がページの動的ビットを追加した後、サーバーがそれを送り返す前に html を縮小する方法があります。クライアントに?
minify を実装しようとしましたが、コールバック関数によってエラーなしでページが壊れます。
<doctype html>タグまたは構成ファイルの前にこれを使用します
function sanitize_output($buffer)
{
$search = array(
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
ob_start("sanitize_output");
その場ですべてを動的に縮小することについて話している場合は、これを最適化と見なすことに注意するように助言します。
はい、帯域幅を大幅に節約できる可能性があります。もちろん、ダウンロード数が少ないと、ユーザーのパフォーマンスが向上する可能性があります。
ただし、PHPを使用してその場でファイルを縮小している場合(これは、実行しているように聞こえます)、エンドユーザーにとって実際に速度が低下している可能性もあります。
縮小は静的ファイルで行うのが最適です。それらを一度縮小して保存し、ファイルが要求されたときにそれ以上処理することなく、縮小されたファイルをブラウザーに提供します。ファイルが要求されるたびにPHPでそれを行うと、パフォーマンスの大幅なオーバーヘッドが発生する可能性があり、ダウンロードサイズが小さいことによるメリットを簡単に打ち消す可能性があります。
HTMLの縮小は、通常、Javascriptよりも効果が低くなります。PHPで生成されたHTMLを「縮小」する最良の方法は、HTMLテンプレートファイルから不要な空白を削除することです。これは通常、非常に簡単な作業であり、専用のミニファイアツールは必要ありません。最も簡単な方法は、ファイルからすべてのインデントを削除することです。空白はHTMLに関連しているため、すべてを取り除くことはできませんが、インデントをなくすと、ファイルを適度に読みやすくしながら、ほとんどの部分を処理できます。
したがって、私のアドバイスは、可能であればファイルを静的に縮小することです。ただし、その場で実行する必要がある場合は、PHPを使用しないでください。Googleのmod_pagespeedなどの専用サーバープラグインを使用します。このプラグインは、要求されたときにファイルを縮小し(PHPよりもはるかに高速で)、縮小されたバージョンのキャッシュを処理して、パフォーマンスへの影響を最小限に抑えます。
お役に立てば幸いです。
PHP の出力バッファリングを調べると、最終的な縮小ステップが可能になります。ダウンロードを最小限に抑えることが目的の場合は、gZip エンコーディングも検討する必要があります。
これは役立つかもしれません:phpページのhtml出力を縮小する方法
私が最近見つけた 1 つのスクリプトがあります。これは、動的 Web サイト コンプレッサーと呼ばれるスクリプトで、HTML ソース コードをオンザフライで縮小するために使用されます。
これは PHP ベースのスクリプトですが、.htaccess で使用できます