【PHP8.x】mb_parse_str関数の使い方
mb_parse_str関数は、URLエンコードされたクエリ文字列を解析し、その結果を変数または配列に格納する関数です。
この関数は、主にWebアプリケーションにおいて、URLのクエリパラメータ(例えば、「name=foo&value=bar
」のような形式の文字列)をPHPプログラムで利用できる変数や配列に変換する際に使用されます。通常の parse_str()
関数と機能は似ていますが、mb_parse_str()
はマルチバイト文字(日本語、中国語、韓国語などの複数バイトで表現される文字)を適切に処理できる点が最大の特徴です。これにより、国際化されたWebサイトやアプリケーションで文字化けが発生するのを防ぎ、安全にデータを扱うことが可能になります。
第一引数には解析したいURLエンコード形式の文字列を指定します。オプションである第二引数に配列の変数を渡すと、解析された結果はその配列の中にキーと値のペアとして格納されます。この第二引数を省略した場合、解析結果は現在のスコープで直接変数として登録されますが、予期せぬ変数の上書きを防ぐため、結果を配列に格納する方法がセキュリティ上推奨されています。
入力文字列の文字エンコーディングを指定することも可能で、指定されたエンコーディングで文字列をデコードした後、PHPの内部エンコーディングに変換して値を格納します。これにより、様々な文字セットでエンコードされたデータであっても、プログラム内で一貫して処理できるようになります。mb_parse_str
関数は、ユーザーからの入力や外部システムからのデータを受け取り、それを安全かつ正確にプログラムで利用できる形に変換するための重要なツールです。
基本的な使い方
構文(syntax)
<?php
$queryString = "name=%E5%A4%AA%E9%83%8E&age=30&city=Tokyo";
$parsedVariables = [];
mb_parse_str($queryString, $parsedVariables);
?>
引数(parameters)
string $string, array &$result = null
- string $string: 解析するURLエンコードされた文字列
- array &$result = null: 解析結果を格納する連想配列(省略可能、指定しない場合はグローバル変数 $_REQUEST に格納される)
戻り値(return)
void
この関数は、指定された文字列をURLエンコードされたクエリ文字列として解釈し、その結果を配列に格納します。戻り値はありません。