人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのHTMLエンティティに関する質問です。
「htmlentities」と「htmlspecialchars」の具体的な使い方の違いについて教えて下さい。
マニュアルを読む限りでは、適用される対象文字が異なるように見受けられました。
セキュリティを考慮してプログラミングする際、どちらを利用すべきだと皆さんはお考えですか?

≪マニュアルから引用≫
htmlentities -- 適用可能な文字を全てHTMLエンティティに変換する
htmlspecialchars -- 特殊文字を HTML エンティティに変換する

●質問者: lg-tsp
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:HTML PHP セキュリティ プログラミング マニュアル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● aiaina
●35ポイント

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1795504

こちら参考になりそうです^^

◎質問者からの返答

ご回答どうもありがとうございます。

単純に、「htmlentities」の方が、適用範囲が広いだけみたいですね。

そこで、結局このような形でセキュリティ対応し、対応を終えました。

/**

* HTML Entities

*/

function html($str) {

return htmlentities($str, ENT_QUOTES, mb_internal_encoding());

}


2 ● takemori
●35ポイント

htmlspecialcharsは以下の変更が行われます。

'&' (アンパサンド) は '&' になります。

ENT_NOQUOTESが設定されていない場合、'"' (ダブルクォート) は '"'になります。

ENT_QUOTESが設定されている場合のみ、''' (シングルクオート) は '''になります。

'<' (小なり) は '<' になります。

'>' (大なり) は '>' になります。


htmlentitiesは他の文字も変換されます。

データをDBやファイルに保存したりするときなどにhtmlentitiesが使われます。

htmlspecialcharsはHTMLタグを無効にするときなどに使われます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ