サンプル・プログラム
解説:パラメータを取り出す
0110: /**
0111: * 指定したパラメータを取り出す
0112: * @param string $key パラメータ名(省略不可)
0113: * @param bool $auto TRUE=自動コード変換あり/FALSE=なし(省略時:TRUE)
0114: * @param mixed $def 初期値(省略時:空文字)
0115: * @return string パラメータ/NULL=パラメータ無し
0116: */
0117: function getParam($key, $auto=TRUE, $def='') {
0118: if (isset($_GET[$key])) $param = $_GET[$key];
0119: else if (isset($_POST[$key])) $param = $_POST[$key];
0120: else $param = $def;
0121: if ($auto) $param = mb_convert_encoding($param, INTERNAL_ENCODING, 'auto');
0122: return $param;
0123: }
ユーザー関数 getParam は、HTML の GET/POST でフォームから送られたデータを取得する。引数が 3 つある。

第1 引数 $key は、GET/POST フォームで送られてくるデータの要素名である。
PHP は、グローバル変数 $_GET に GET フォームで送られてくるデータを、グローバル変数 $_POST に POST フォームで送られてくるデータを格納している。これらの値を取り出すのが、関数 getParam の肝の部分である。

第2 引数 $auto は、取り出したデータを文字コード変換するかどうかを指定する。TRUE で自動変換する、FALSE で自動変換しない。本プログラムの文字コードは定数 INTERNAL_ENCODING に設定しておく。
文字コード変換には、関数 mb_convert_encoding を利用する。

第3 引数 $def は、初期値を設定する。GET/POST フォームに $key で指定された値がないとき、この初期値が返される。

第2 引数と第3 引数は省略可能である。
省略したときは、$auto は TRUE が、$def は '' が代入される。

第1 引数 $key は、GET/POST フォームで送られてくるデータの要素名である。
PHP は、グローバル変数 $_GET に GET フォームで送られてくるデータを、グローバル変数 $_POST に POST フォームで送られてくるデータを格納している。これらの値を取り出すのが、関数 getParam の肝の部分である。

第2 引数 $auto は、取り出したデータを文字コード変換するかどうかを指定する。TRUE で自動変換する、FALSE で自動変換しない。本プログラムの文字コードは定数 INTERNAL_ENCODING に設定しておく。
文字コード変換には、関数 mb_convert_encoding を利用する。

第3 引数 $def は、初期値を設定する。GET/POST フォームに $key で指定された値がないとき、この初期値が返される。

第2 引数と第3 引数は省略可能である。
省略したときは、$auto は TRUE が、$def は '' が代入される。
解説:getParamの使い方
ユーザー関数 getParam は、このようにして使う。

ここでは、送信ボタン(要素名 exec)、リセットボタン(要素名 reset)、テキスト(要素名 param)の 3 つを取り出している。
テキスト以外は文字コード変換は不要としている。

ここでは、送信ボタン(要素名 exec)、リセットボタン(要素名 reset)、テキスト(要素名 param)の 3 つを取り出している。
テキスト以外は文字コード変換は不要としている。
参考サイト
- PHP で GET/POST でフォームから値を受け取る(その2):ぱふぅ家のホームページ
- PHP でフォームを介さずに GET と POST を送信する:Take a Rest
- [php]フォームとは get post 隠しパラメータ:レスペス・トランクィル
- (PHP)フォームから POST で受け取ったデータが文字化けする:3 流プログラマのメモ書き
(この項おわり)
そこで今回は、GET/POST の両方で利用でき、日本語テキストも受け取ることができるユーザー関数を作ってみることにする。