戻る

URLエンコードされたデータを元に戻す

urldecode()関数

GETメソッドでフォームデータを送信すると、テキストボックスなどに入力された全角文字や半角英数字、あるいはクリックされたボタンの全角文字のvalue属性値などは、すべて「%」で始まる半角英数字形式に変換されます。この変換を「URLエンコード」といい、自動的に行われます。このURLエンコードされた文字列を通常の全角文字の状態に戻すには、urldecode()関数を使います。引数にURLエンコードされた文字列を指定すると、元に戻された文字列が返されます。

この例では、HTMLフォームの内容をGETで送信しています。送信後のブラウザのアドレスを見ると、送信データがURLエンコードされていることが分かります。それをurldecode()関数で元に戻した結果を表示しています。

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

if(isset($_GET["btnExec"])){
	//受け取ったクエリ文字列をそのまま表示
	echo $_SERVER["QUERY_STRING"] . "<br><br>";
	
	//クエリ文字列を元に戻して表示
	echo urldecode($_SERVER["QUERY_STRING"]) . "<br><br>";
	
	//スーパーグローバル変数で表示
	echo $_GET["inputdata"] . "<br>";
	echo $_GET["btnExec"] . "<br><br>";
}
?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
テキストボックスに値を入力して「送信」ボタンをクリックしてください。
<form action="<?=$_SERVER["PHP_SELF"]?>" method="GET">
	<input type="text" size="40" name="inputdata">
	<input type="submit" name="btnExec" value="送信">
</form
</body>
</html>

inserted by FC2 system