1

TinyMCE を Symfony プロジェクトに実装する際に小さな問題があります。テキスト エディターを起動して、リッチ テキストをデータベース フィールドに保存します。しかし、ページに「エコー」すると、リッチ テキスト自体ではなく、すべての HTML タグが表示されます。HTMLを解析するためにこれを「エコー」する必要がある特別な方法はありますか? また、人々が手動で html タグを入力すると、それらが通常のテキストとして表示されるようにしたいと考えています (投稿にハイパーリンクやその他の望ましくないものを追加することを避けるため)。表示内容は次のとおりです。

<p>Test</p> <p><strong>Bold Test</strong></p> <p><span style="text-decoration: underline;"><strong>Underline Text</strong></span></p>

これの代わりに:

テスト

大胆なテスト

テキストに下線を引く

4

1 に答える 1

4

Symfony2 はセキュリティのために出力エスケープを使用します。ここでそれについて読むことができます: http://symfony.com/doc/current/book/templating.html#output-escaping

エスケープせずに変数をエコーするには、次のようにします。

{{ article.body|raw }}

使用できるタグをクリーンアップして制限するには、 https ://github.com/Exercise/HTMLPurifierBundle にバンドルされているHTMLPurifierを使用する必要があります。

Symfony 1.4 の場合

symfony 1.4 には同様の出力エスケープがあります。次の方法で生データを取得できます。

$sf_data->getRaw('varName');

または、オブジェクトのメソッドである場合はESC_RAW、メソッド呼び出しにパラメーターとして追加できます (警告: symfony はここでいくつかの魔法を行います)

$myObject->getMessage(ESC_RAW);

1.4 出力エスケープの詳細はこちら

于 2012-07-03T03:26:05.120 に答える