web-dev-qa-db-ja.com

置換トークンの!、%、@の違いは何ですか?

Drupal 7.でMessageモジュールを使用しています。Replacement tokensの場合、ヘルプテキストには次のように記載されています。

置換トークンのカンマ区切りのリスト。メッセージのテキストが使用する%titleまたは!url。各置換トークンは、特殊文字「@」、「%」、または「!」のいずれかで始まる必要があります。この文字は、t()関数と同様に、使用されるサニタイズ方法を制御します。

%、!、@の違いは何ですか?各シンボルをいつ使用するかについての基準はありますか?

15
Patrick Kenny

format_string() docsから:

  • @ variablecheck_plain() を使用してHTMLにエスケープしました。これを、サイトのページに表示されるもののデフォルトの選択肢として使用します。
  • %variable:HTMLにエスケープされ、 drupal_placeholder() を使用してフォーマットされ、強調テキスト。
  • !variable:サニタイズまたはフォーマットなしで、そのまま挿入されます。これは、HTML表示用にすでに準備されているテキスト(たとえば、以前にcheck_plain()を介して既に実行されているか、いくつかの制限されたHTMLタグを含み、すでに実行されていることが予想されるユーザー提供のテキスト)にのみ使用してください filter_xss() 以前)。
20
Clive