0

キャッシュをロードするための PHP ファイルを生成しました ( file_get_contents() または include() を介してランダムに処理されます...)。この例を考えてみましょう:

最適化されていないモードまたはキャッシュされていない:

私が見たくないもの:

  • <body>との間のスペース<head>
  • 閉じたタグ間のスペース:/> <scriptまたは<table> <tr>

私が見たいもの(おそらくPHPを使用して最適化された方法PREG_REPLACE):

  • タグ間のトリミングされたスペース<body><head>
  • 閉じたタグ間のスペースをトリミング:/><scriptまたは<table><tr>

上記の完全な例では、次のような RESULT にする必要があります。

<!DOCTYPE><head><link href="/static/css/main.css" rel="stylesheet" type="text/css"><title>Title</title><meta http-equiv='Content-Type' content='Type=text/html; charset=UTF-8'> <meta name="description" content="Description site" /><meta name="keywords" content="keywords, another keywords" /><script type="text/javascript" src="/static/js/jquerymin.js"></script></head><body><div id="center_box"><div id="orderdata"><table></table></div><div id="orderform"><form method="post" action="/frontacp" method="post" action="/frontacp" method="post" action="/frontacp" method="post" action="/frontacp"><div class="logincol"><div class="leftcol"><label for="types_name">Tip proizvoda</label></div><div class="rightcol"><input type="text" name="types_name" /></form></div></div></body></html>

ページの代わりに BAD (最適化されていない使用法):

    <!DOCTYPE><head>
    <link href="/static/css/main.css" rel="stylesheet" type="text/css"><title>Title</title>
    <meta http-equiv='Content-Type' content='Type=text/html; charset=UTF-8'> <meta name="description" content="Description site" /><meta name="keywords" content="keywords, another keywords" /><script type="text/javascript" src="/static/js/jquerymin.js"></script></head>
    <body><div id="center_box">
        <div id="orderdata">
        <table>

        </table>
        </div>

        <div id="orderform">
        <form method="post" action="/frontacp" method="post" action="/frontacp" method="post" action="/frontacp" method="post" action="/frontacp"><div class="logincol"><div class="leftcol"><label for="types_name">Tip proizvoda</label></div><div class="rightcol"><input type="text" name="types_name"    /></form>    </div>
    </div></body></html>

解決策: 適切なメソッドを使用してこの問題を解決し、HTML タグ内のスペースを削除しない PHP の例。

注意:キャッシュの読み取りとレンダリングについては完了しましたが、この質問はこの領域ではカバーしません。

ありがとうございました。

4

2 に答える 2

0

これは想像以上に複雑で、ここで多くの疑問が生じました。適切な解決策があると思われるものを自由に見つけました:

minifying-final-html-output-using-regular-expressions-with-codeigniter

(解決策は単なる正規表現であるため、CodeIgniter の参照は無視してください)

于 2012-10-17T14:28:28.910 に答える
0

これはうまくいくはずです

$document = preg_replace( '/\n/', '', $document );
$document = preg_replace( '/>\s+</', '><', $document );
$document = preg_replace( '/\s{2,}/', ' ', $document );

さよなら

于 2012-10-17T14:17:33.447 に答える