このエントリーをはてなブックマークに追加


不等号<>、アンパサンド、ダブルクォーテーション、シングルクォーテーションのエスケープ方法

HTMLでは、不等号<>やアンパサンドは特別な意味を持ちます。
通常、以下のようにエスケープしてHTML上に記述します。


スポンサーリンク

htmlspecialcharsがエスケープする文字

htmlspecialchars関数を使うと以下の文字がエスケープ(変換)されます。

文字エスケープ補足
<&lt; 
>&gt; 
&&amp; 
"&quot;フラグによりエスケープするしないを制御
'&#039フラグによりエスケープするしないを制御

htmlspecialcharsサンプルソースコード

上記の文字がエスケープされることを確認するサンプルコードです。

<?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;
?>

実行結果

上記スクリプトの実行結果を以下に記します。
尚、本スクリプトは端末から実行しました。

$ 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による動作の違いも出力されています。


スポンサーリンク


添付ファイル: filehtmlspecialchars.php 1797件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:31:48