【PHP入門】mb_parse_str() 関数で GET・POST・COOKIE データを解析する方法
PHP の mb_parse_str() 関数は、GET・POST・COOKIE から受け取ったデータを解析し、その結果を変数や配列に格納するために使用されるマルチバイト対応の関数です。URL エンコードされた文字列を受け取り、自動的にエンコーディング(文字コード)を検出したうえで、内部エンコーディングへ変換してから値を展開します。日本語などのマルチバイト文字を含むクエリ文字列を安全に扱えるのが大きな特徴です。この関数は PHP 7 以降のバージョンで利用できます。
構文
bool mb_parse_str(string $str_string, array &$array_result)
パラメータ
mb_parse_str() 関数は、以下の 2 つの引数を受け取ります。
$str_string − 解析対象となる URL エンコード済みのデータ(クエリ文字列)を指定します。
$result − 第 2 引数として配列を渡すと、デコードおよび文字コード変換が完了した値が連想配列として格納されます。参照渡しである点に注意してください。
戻り値
データの解析に成功した場合は true を、失敗した場合は false を返します。
補足として、第 2 引数を省略して呼び出した場合、従来は解析結果がグローバル変数へ直接セットされていましたが、この挙動はセキュリティ上の観点から非推奨となっており、現在では必ず第 2 引数に配列を指定して結果を受け取る方法が推奨されています。
使用例 1
<?php
$str_string = "user_id=123&email=xyz@gmail.com&country=India";
$array_result;
// データを解析する
mb_parse_str($str_string, $array_result);
print_r($array_result);
?>
実行結果
上記のコードを実行すると、次のような出力が得られます。
Array
(
[user_id] => 123
[email] => xyz@gmail.com
[country] => India
)
このように、クエリ文字列形式のデータが「キー => 値」の連想配列としてきれいに分解されていることが確認できます。フォーム送信データや API リクエストのパラメータ処理など、マルチバイト文字を含む可能性があるデータの解析に活用すると便利です。
-
jQueryのserializeArray()で送信したフォームデータをPHP側で受け取る方法
PHPでserializeArrayによるPOST値を取得するには、jQueryのserializeArray()メソッドを使用します。このメソッドは、.serialize()と同様にフォームおよびフォーム内のすべての要素をシリアライズしますが、戻り値としてJSON形式のデータ構造を返す点が大きな特徴です。 serializeArray()の戻り値について serializeArray()は、「name」と「value」のペアを持つオブジェクトの配列を返します。イメージとしては以下のような構造です。 [ { name: name, value: 入力された名前 }, { name: a
-
PythonでGET・POSTリクエストを送信する方法|requestsモジュールの基本
Pythonは、Webページからデータを取得するだけでなく、Webサイトへデータを送信(投稿)することもできます。標準ライブラリのurllibやサードパーティ製のhttplib2など、HTTP通信に利用できるモジュールは複数ありますが、その中でもrequestsモジュールが最もシンプルで直感的に扱えます。GET・POSTメソッドを使ったプログラムを、短くて読みやすいコードで記述できるのが大きな魅力です。 requestsモジュールは標準ライブラリには含まれていないため、未インストールの場合はまず以下のコマンドでインストールしてください。 pip install requests GETメソッド