4

Smarty ですべての出力 HTML テンプレートを縮小するにはどうすればよいですか?

このように: $smarty->minify = true;

PS :{strip}関数は見つかりましたが、すべてのファイルでこの関数を使用する必要があり.tplます。私は多くの.tplファイルを持っていますが、この方法は私には不可能です。

4

3 に答える 3

5

Smarty v3 に同梱されているtrimwhitespace 出力フィルターを使用できます。

$smarty->loadFilter('output', 'trimwhitespace');

このフィルターは、出力を直接縮小するわけではありませんが、Smarty に付属する多くの空白を削除します。私の場合、空白は問題の約 80% から 90% です。

outputコンパイルされたテンプレートでフィルターが毎回実行されることに注意してください。したがって、このフィルタは、完全なファイルを送信するよりも実行に時間がかかります。トラフィックを減らしたり、キャッシュを使用したりする必要がない限り、あまり役に立ちません。しかし、フィルターとして実行される同様のフィルターを作成できるかもしれませんpost

ブロックもあり{strip}ます。これにより、空白も削除されます。違いは、出力フィルターのようにすべての呼び出しではなく、コンパイル時に実行されることです。

したがって、すべてのテンプレート ファイルに触れることがオプションである場合は{strip}、より良いオプションになります。そうでない場合は、出力フィルターを使用してください。

于 2015-02-17T07:13:26.623 に答える
1

これには出力フィルタを使用できます。出力フィルタは、すべてのスマートな解析の後に HTML 出力を取得し、ユーザーに出力する前に PHP ロジックを実行します。このようにして、出力フィルターを登録し、そこで出力を縮小/圧縮します。出力フィルタリングについては、smarty の優れたドキュメントを参照してください: smartyV2 - smartyV3

PHP でコードを縮小する方法については、ネット上でいくつかの優れた記事を見つけることができます。

于 2013-09-08T05:26:40.463 に答える