parse_str
文字列を処理し、変数に代入する
説明
void parse_str(string $string
, array &$result
)
パラメータ
-
string
-
入力文字列。
-
result
-
2 番目の引数
result
が指定された場合、
変数は、代わりに配列の要素としてこの変数に保存されます。
警告
この関数を result
パラメータを指定せずに使うことは
絶対に おすすめしません し、
PHP 7.2 以降では 推奨されません。
PHP 8.0.0 以降では、result
パラメータの指定が
必須 になっています。
例
例1 parse_str の使用法
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
// 推奨
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
// お勧めできない
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>
PHP における変数は、名前にドットやスペースを許容しないので、
そういった値はアンダースコアに変換されます。同じことは、
この関数に result
パラメータを指定した
場合の、配列のキーの名前にも当てはまります。
例2 parse_str name mangling
<?php
parse_str("My Value=Something");
echo $My_Value; // Something
parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>
注意
注意:
全ての作成された変数 (第二引数が設定された場合は配列に設定される値)
の値は、既に urldecode されています。
注意:
現在の QUERY_STRING
を取得するには、変数
$_SERVER['QUERY_STRING']
を使用する事ができます。また、
外部から来る変数
のセクションも読んでください。
参考
- parse_url
- pathinfo
- http_build_query
- urldecode