1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
/* --------------------------------------------------------------------------------------------------
* CGIフォーム処理:フォーム入力されたURLをエンコードとデコード処理の利用例
* 2015.09.22 作成 yoshi of CXMedia Inc.
* -------------------------------------------------------------------------------------------------
* htmlspecialchars ( string [,flags [,encoding [,double_encode]]] ) 関数
'&'(アンパサンド) は'&' 、'<'(小なり) は'<'、'>'(大なり) は'>'に変換
[flag] フラグを組み合わせたビットマスク
・ENT_COMPAT - ダブルクオートは変換しますがシングルクオートは変換しません。
・ENT_QUOTES - シングルクオートとダブルクオートを共に変換します。
・ENT_NOQUOTES - シングルクオートとダブルクオートは共に変換されません。
・ENT_IGNORE - PHP5.3以降追加:「無効な符号単位シーケンスを含む文字列の部分を切り捨てる」
・PHP5.4以降 - ENT_SUBSTITUTE、ENT_DISALLOWED,ENT_HTML401,ENT_XML1 ENT_XHTML,ENT_HTML5が追加
* -------------------------------------------------------------------------------------------------- */
// HTMLヘッダー表示
html_header();
// 初期値設定
$in_url = "";
/* ----------------------------------------------
* 処理分岐:CGIデータから判断:POSTされたとき
* ---------------------------------------------- */
// POSTのフォームから送信されたかの判断
if (isset($_POST["m"]) && $_POST["m"] == 'urlenc'){
// POSTメソッドで取得したフォーム内容を処理
$in_url = htmlspecialchars($_POST["in_url"], ENT_QUOTES);
// URL入力チェック
if (strlen($in_url)==0){
echo "URLが未入力です<br>";
} else {
// 取得したURLデータをエンコードして内容表示
$dsp_url = rawurlencode($in_url);
dspEncUrl($dsp_url);
}
}
// プログラム起動時か「戻る」リンクのGETメソッドの処理
else {
// 「戻る」リンクのGETメソッドのURL入力
if(isset($_GET["in_url"])){
// URLエンコードされた内容をデコード
$in_url = rawurldecode($_GET["in_url"]);
}
//デコードしたURLデータをフォーム内に表示
dspFormUrl($in_url);
}
// HTMLフッター表示
html_footer();
exit;
/* --------------------------------------
* URL入力(リンクデータ付き)フォーム
* -------------------------------------- */
function dspFormUrl($url_path){
//環境変数の自分自身のプログラムのセット
$wk_action = $_SERVER["PHP_SELF"];
echo <<< _EOF_
<strong>■URLの入力(例:「abc.html?id=テスト」)■</strong><br>
<form action="{$wk_action}" method="POST">
<!-- 隠しコード:hiddenタイプで、「m=urlenc」を設定 -->
<input type="hidden" name="m" value="urlenc">
<ul type="none">
<li bgcolor="#b2ce77">URL+リンクデータ入力:<input type="text" name="in_url" value="{$url_path}" size="60"></li>
<li><input type="submit" name="submit" value=" 実行 "></li>
</ul>
</form>
_EOF_;
}
/* ------------------------------------------------------
* URLエンコード内容の表示と「戻り」リンクのURLの作成
* ------------------------------------------------------ */
function dspEncUrl($urlpath){
// 自分自身のプログラム変数とGETメソッドのURLの作成
$wk_action = $_SERVER["PHP_SELF"].'?in_url='.$urlpath;
echo <<< _EOF_
<hr>
<ul type="none">
<li bgcolor="#b2ce77">■URLエンコード内容の表示■</li>
<li>$urlpath</li>
<li><a href="$wk_action">戻る</a></li>
</ul>
_EOF_;
}
/* ------------------------
* HTML Header 表示
* ------------------------ */
function html_header(){
echo <<< _EOF_
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>URLエンコード/デコードとフォーム送信_CXMedia</title>
</head>
<body>
<div style="width:800px; margin:0 auto;">
<h2>URLエンコード/デコードとフォーム送信</h2>
_EOF_;
}
/* ------------------------
* HTML Footer 表示
* ------------------------ */
function html_footer(){
echo <<< _EOF_
</div>
</body>
</html>
_EOF_;
}
?>