ラボ > PHP:PATHやURL関連、セキュリティ関連

PHP 配列をURL用のgetパラメータ作成(http_build_query()、parse_str())

「hoge=1&foo=abc」みたいなヤツを作りたい

作成日:2022-09-22, 更新日:2024-02-05

基本

「http_build_query()」を使う

$prms_many = array(
	hoge => 1,
	foo  => 'abc',
);
$str_prms = http_build_query($prms_many);
// 「hoge=1&foo=abc」ができる

$url = 'http://example.com/hoge.php?' . $str_prms; // 「http_build_query()」で「?」は作られないので必要

「hoge=1&foo=abc」みたいなヤツを配列に戻したい

「parse_str()」を使う

$str_prms = 'hoge=1&foo=abc';
parse_str($str_prms, $prms_many); // 第2引数が返値になる。無ければキーの変数が作られるみたい
var_dump($prms_many);

URLから取得

$url = "http://example.com/hoge/foo?a=b&c=d";

$parsed_url = parse_url($url);
$query_str = $parsed_url['query'];

parse_str($query_str, $prms_many);

var_dump($prms_many);