戻る

HTMLの特殊文字を実体参照に置換する

htmlspecialchars()関数

htmlspecialchars()関数を使うと、テキストボックスに入力されたデータに含まれるHTMLの特殊文字を実体参照に置き換えできます。この関数を使うことにより、HTMLタグはWebブラウザじょうでは単なるテキストとなるため、HTMLとしての機能を無効化できます。例えば、ユーザがテキストボックスに「<b>」という文字を入力した場合、htmlspecialchars()関数の返り値は「&lt;b&gt;」という文字列になります。これをWebブラウザで表示すると「<b>」という文字がそのまま表示され、"太字に表示する"という機能は効きません。

このほか、htmlspecialchars()関数は次のような実態参照の置換を行います。

<&lt;
>&gt;
&&amp;
"&quot;(第2引数に定数「ENT_NOQUOTES」を指定した場合)
'&#39;(第2引数に定数「ENT_QUOTES」を指定した場合)

HTMLタグを含む文字列を入力して「送信」ボタンをクリックします。2番目のメッセージは特殊文字が実態参照に置換されて、HTMLタグが無効化されています。

<?php
header("Content-type: text/html; charset=utf-8");

if(isset($_POST["btnExec"])){

	//受け取ったデータをそのまま表示
	echo $_POST["inputdata"] . "<br><br>\n\n";
	
	//HTML特殊文字を置換
	echo htmlspecialchars($_POST["inputdata"]) . "<br><br>\n\n";
}

?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
テキストボックスに値を入力して「送信」ボタンをクリックしてください。
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">
	<input size="90" type="text" name="inputdata">
	<input type="submit" name="btnExec" value="送信">
</form>
</body>
</html>

inserted by FC2 system