#navi(../)
* 不等号<>、アンパサンド、ダブルクォーテーション、シングルクォーテーションのエスケープ方法 [#uf5f8802]
HTMLでは、不等号<>やアンパサンドは特別な意味を持ちます。~
通常、以下のようにエスケープしてHTML上に記述します。
- PHP Manual: htmlspecialchars~
http://php.net/manual/ja/function.htmlspecialchars.php
|文字|エスケープ|
|<|&amp;lt;|
|&gt;|&amp;gt;|
|&|&amp;amp;|
このようにエスケープ(変換)してくれる関数がhtmlspecialcharsになります。

#contents
#htmlinsertpcsp(web-top.html,web-sp.html)

* htmlspecialcharsがエスケープする文字 [#kacd1fb6]
htmlspecialchars関数を使うと以下の文字がエスケープ(変換)されます。
|文字|エスケープ|補足|
|<|&amp;lt;|&nbsp;|
|&gt;|&amp;gt;|&nbsp;|
|&|&amp;amp;|&nbsp;|
|"|&amp;quot;|フラグによりエスケープするしないを制御|
|'|&amp;#039|フラグによりエスケープするしないを制御|


* htmlspecialcharsサンプルソースコード [#zb138ca7]
上記の文字がエスケープされることを確認するサンプルコードです。
#ref(htmlspecialchars.php)
 <?php
   echo 'htmlspecialchars("<") = ' . "\t" . htmlspecialchars("<") . PHP_EOL;
   echo 'htmlspecialchars(">") = ' . "\t" . htmlspecialchars(">") . PHP_EOL;
   echo 'htmlspecialchars("&") = ' . "\t" . htmlspecialchars("&") . PHP_EOL;
 
   echo "htmlspecialchars('\"') = " . "\t" . htmlspecialchars('"') . PHP_EOL;
   echo 'htmlspecialchars("\'") = ' . "\t" . htmlspecialchars("'") . PHP_EOL;
 
   echo "htmlspecialchars('\"', ENT_NOQUOTES) = " . "\t" . htmlspecialchars('"', ENT_NOQUOTES) . PHP_EOL;
   echo 'htmlspecialchars("\'", ENT_NOQUOTES) = ' . "\t" . htmlspecialchars("'", ENT_NOQUOTES) . PHP_EOL;
 
   echo "htmlspecialchars('\"', ENT_QUOTES) = " . "\t" . htmlspecialchars('"', ENT_QUOTES) . PHP_EOL;
   echo 'htmlspecialchars("\'", ENT_QUOTES) = ' . "\t" . htmlspecialchars("'", ENT_QUOTES) . PHP_EOL;
 
   echo "htmlspecialchars('\"', ENT_COMPAT) = " . "\t" . htmlspecialchars('"', ENT_COMPAT) . PHP_EOL;
   echo 'htmlspecialchars("\'", ENT_COMPAT) = ' . "\t" . htmlspecialchars("'", ENT_COMPAT) . PHP_EOL;
 ?>

* 実行結果 [#c4a3876d]
上記スクリプトの実行結果を以下に記します。~
尚、本スクリプトは端末から実行しました。
 $ php htmlspecialchars.php
 htmlspecialchars("<") =         &lt;
 htmlspecialchars(">") =         &gt;
 htmlspecialchars("&") =         &amp;
 htmlspecialchars('"') =         &quot;
 htmlspecialchars("'") =         '
 htmlspecialchars('"', ENT_NOQUOTES) =   "
 htmlspecialchars("'", ENT_NOQUOTES) =   '
 htmlspecialchars('"', ENT_QUOTES) =     &quot;
 htmlspecialchars("'", ENT_QUOTES) =     &#039;
 htmlspecialchars('"', ENT_COMPAT) =     &quot;
 htmlspecialchars("'", ENT_COMPAT) =     '

ENT_NOQUOTES, ENT_QUOTES, ENT_COMPATによる動作の違いも出力されています。

#htmlinsertpcsp(web-btm.html,web-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS