ホームページ  >  記事  >  バックエンド開発  >  html/js/Cssを簡単に圧縮するPHP圧縮HTML関数と注意点_PHPチュートリアル

html/js/Cssを簡単に圧縮するPHP圧縮HTML関数と注意点_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:13:09871ブラウズ

HTMLを圧縮する理由
Webページの読み込み速度を改善する方法とHTMLページを最適化する方法は、Webサイト構築スキルを向上させたいすべてのWebマスターが考えたことがある問題です。実際、最適化する方法はまだたくさんあります。ウェブページ。

一部の子供たちは、higrid に HTML を圧縮する方法、つまり、実行前にすべての html、js、css を 1 行に圧縮し、コメント マーク、改行、スペース、タブなどを削除できるかどうかを尋ねました。この直接的な利点は、HTML ページのサイズが削減され、フロントエンドの読み込み速度が向上することです。多くの人は gzip が有効になっていると考えていますが、現在の HTML は動的であり、ブラウザのキャッシュを使用しないため、一般に HTML に対して gzip 圧縮を有効にすることはまれです。gzip が有効になっている場合、各リクエストを圧縮する必要があり、消費量が増加します。リソースの場合、js と css は両方ともキャッシュを使用するため、js と css に対して gzip を有効にすることをお勧めします。そして、誰もが圧縮をフィルタリングするために多くのソフトウェアを使用していますが、オンラインの js/css/html 圧縮ツールもあり、Higrid はそれが非常に面倒で可読性が低いと考えています。 Higrid は、圧縮関数を関数にすると、開発者には圧縮されていない状態が表示されると考えていますが、訪問者がアクセスすると、サーバー側プログラムが HTML ページを圧縮し、コメント マーク、改行、スペース、タブをクリアするまで待機します。 htmlのサイズを減らすという目的を達成します。 higrid.net に頻繁にアクセスする場合は、右クリックして HTML ソース コードを表示すると、この記事の HTML ソース コードが圧縮されていることがわかります。 higrid.net が提供する無料のコンテンツ管理システムを含め、出力は空白、改行、タブが削除された圧縮 html になります。ただし、higrid.net にはいくつかの例外があります。つまり、higrid.net では主にオンライン テーブル、オンライン グラフィックス (jquery デモを含む) を推奨しています。訪問者の便宜のため、圧縮は有効になっていません。

したがって、Higrid は、HTML を圧縮することの最大の利点は、一度関数を作成しておけば、将来必要になったときにすべてのプログラムで呼び出すことができることであると個人的に感じています。追加の開発作業を追加せずに使用できます。今日はhigridが私が個人的に便利だと思う機能をいくつか紹介しますので、ぜひ試してみてください。

phpを使用してHTMLを圧縮しますhigridはphpに興味があるため、HTMLを圧縮するためにphpを使用します。もちろん、たとえばaspを使用してHTMLを圧縮する場合も原理は同じです。 。

higrid は、HTML を圧縮する関数を PHP の関数に記述します。実際、このような PHP 圧縮関数はインターネット上にたくさんあります。Baidu や Google で検索してみてください。特に JS や CSS を圧縮する場合にはあまり役に立ちません。主な理由は、圧縮コメントやその他の側面の違いが問題を引き起こすことです。 まずこの関数を見てみましょう:

コードをコピーします コードは次のとおりです:
/**
* HTML を圧縮: 改行をクリア、タブをクリア、コメントマークを削除
* @param $string
* @return COMPLEX $string
**/
function compress_html($string){
$string=str_replace("rn" ,'',$string );//改行文字をクリア
$string=str_replace("n",'',$string);//改行文字をクリア
$string=str_replace("t",'',$string );//システムテーブルシンボルをクリア
$pattern=array(
"/> *([^ ]*) *"/[s]+/",
" //",
"/" /",
"/ "/",
"'/*[^*]**/'"
);
$replace=array (
" >\1" ",
"",
""",
""",
""
return preg_replace($pattern, $replace, $string); );
}


phpを使ってHTMLを圧縮する時の注意点
phpを使ってHTMを圧縮する実装方法は主に正規表現を使った検索と置換です。 HTML を圧縮するときは、主に次の点に注意する必要があります:
1. HTML ドキュメントでは、複数の空白文字は 1 つの空白文字と同等です。つまり、改行などの空白文字の削除は安全ではなく、一部の要素のスタイルに違いが生じる可能性があります。
2.html には pre があり、これはフォーマット済みテキストを意味します。その中の空白は削除できないため、pre タグと textarea タグ内のコンテンツ形式は保持する必要があり、圧縮することはできません。
3. HTML には IE の条件付きコメントが含まれる場合があります。これらの条件付きコメントはドキュメント ロジックの一部であり、削除できません。したがって、HTML コメントを削除する場合、次のような一部のコメントは削除できません。
4. 埋め込み JS でコメントを圧縮する場合は、次のようなコメント記号が文字列に含まれる可能性があるため注意してください。 var url = "http:// www. higrid.net"; // 前の // はコメントではありません
5. 動的ページの場合、HTML 圧縮によりサーバーの CPU 負荷が増加する可能性もあり、これは利益よりも有害です


PHP 圧縮 HTML 関数コードが使用されますhigrid
コメントはコードに影響を与えるため、higrid で使用される php 圧縮 html 関数のコードはコメントを削除せず、直接コードに移動します。

コードをコピーします コードは次のとおりです:

関数 higrid_compress_html($higrid_uncompress_html_source )
{
$chunks = preg_split( '/()/ms', $higrid_uncompress_html_source, -1, PREG_SPLIT_DELIM_CAPTURE ); _html_ ソース = ''; / /[higrid.net] 圧縮 HTML を変更: 改行を削除、タブを削除、コメント マークを削除
foreach ( $chunks as $c )
{
if ( strpos( $c, '{
//[higrid.net] 新しい行とタブを削除します
$c = preg_replace( '/[\n\r\t]+/', ' ', $c );
// [higrid.net] ] 余分な空白を削除します
$c = preg_replace( '/\s{2,}/', ' ', $c );
// [higrid.net] タグ間の空白を削除します
$c = preg_replace( '/ >) ;\s<', $c );
// [higrid.net] CSS および JS コメントを削除
$c = preg_replace( '/\/\*.*?\*\ / /i', '', $c );
}
$higrid_uncompress_html_source .= $c;
}



一部の子供用シューズは HTML の圧縮を推奨していません主な理由は、PHP で HTML を圧縮する場合の上記の注意事項に加えて、gzip 圧縮によって良好な結果が得られるためです。また、HTMLに影響を与える役割(静的、動的、フロントエンド動的)が多すぎて、定量的な指標がないため、どのように圧縮するか(どの程度コードを記述するか)を制御することが困難です。コードでは、送信効率ではなく実行効率を考慮する必要があります。動的ページの場合、HTML 圧縮によってサーバーの CPU 負荷が増加する可能性もありますが、これはメリットに見合ったものではありません。 Google が Web ページを圧縮したのは、初期の頃、ホームページのテキストをできるだけ 1 つまたは 2 つのパッケージ内に収めたいと考えていたことと、ホームページが重要すぎてトラフィックが法外だったためです。 1バイト圧縮すると総通信量が膨大になるので当然必要になります。これ以上の圧縮には問題があり、Google のように徹底的にテストしない限り、HTML の圧縮は推奨されません (Google もコア サービスからの少数のページしか圧縮しません)。

しかし、higrid.net の php 圧縮 html 関数コードを使用すると、この問題をうまく解決できます。さて、早速試してみましょう。

http://www.bkjia.com/PHPjc/326529.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/326529.html技術記事 HTML を圧縮する理由: Web ページの読み込み速度を向上させる方法と HTML ページを最適化する方法は、Web サイト構築スキルを向上させたいすべての Web マスターが考えたことがある問題であると考えられています。まだとても...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。