PowerCMS™

PowerCMS ブログ

ホーム > PowerCMS ブログ > エスケープに関するモディファイアについて

2018年11月20日

エスケープに関するモディファイアについて

『エスケープ処理を行うモディファイアが変換対象としている文字の一覧はありますか?』という趣旨のお問い合わせを弊社製品サポート宛てにいただきましたので、PowerCMS で利用可能なエスケープ処理を施すモディファイアの置換対象となる文字をご紹介いたします。

※ 各モディファイアの使い方につきましては、それぞれのリファレンスを参照してください。

encode_html
1 を設定すると、テンプレートタグの値が HTML エンコードされます。
encode_json
テンプレートタグの出力結果を JSON として扱えるようにエスケープします。
encode_js
1 に設定すると、テンプレートタグの値が javascript の文字列の値として使えるようにエンコードします。
encode_php
PHP コード内でデータを使えるようにテンプレートタグの出力をエンコードします。
encode_url
1 を設定すると、URL での利用に合わせたフォーマットに、テンプレートタグの値をエンコードします。アルファベット以外の文字を 16 進数ベースのものに変換します。
encode_xml
1 に設定すると、XMLフォーマットに適した形式にエンコードします。データがHTML要素やタグを含んでいる場合、CDATAブロックで囲んで出力します。

encode_html モディファイアによる変換

環境変数 NoHTMLEntities の値によって動作がかわります。

NoHTMLEntities が 0 の場合 (初期値)

encode_html によるエスケープ対象の一部
対象文字 変換後
< &lt;
> &gt;
& &amp;
" &quot;
' &#039;

& は実体参照の場合には変換対象外となります。

NoHTMLEntities が 1 の場合

HTML::Entities モジュールの encode_entities メソッドを利用して変換を行います。encode_entities メソッドの詳細についてはリファレンスを参照してください。

encode_json モディファイアによる変換

JSON モジュールの to_json メソッドを利用して変換を行います。to_json メソッドの詳細についてはリファレンスを参照してください。

encode_js モディファイア モディファイアによる変換

encode_js によるエスケープ対象
対象文字 変換後
" \"
\ \\
> \>
< \<
script s\cript
</ <\/
' \'
改行 \n
キャリッジリターン \r
タブ \t
Null文字 \0
改ページ \f

encode_php モディファイアによる変換

encode_php の仕様につきましてはリファレンスを参照してください。

encode_php におけるエスケープ対象の一部
対象文字 変換後
' \'
\ \\
$ \$
改行 \n
キャリッジリターン \r
タブ \t

encode_url モディファイアによる変換

文字コードを16進数に変換した値にゼロパディングを施して先頭に % を付与します。

encode_url におけるエスケープ対象の一部
対象文字 変換後
< %3C
> %3E
' %27
" %22
& %26
/ %2F
\ %5C
$ %24
? %3F

encode_xml モディファイアによる変換

環境変数 NoCDATA の値によって動作がかわります。

encode_xml によるエスケープ対象の一部
対象文字 変換後
※HTML・テンプレートタグ※ <![CDATA[※HTML・テンプレートタグ※]]>

カテゴリー
テンプレート作成Tips