(PHP 4, PHP 5, PHP 7, PHP 8)
parse_str — 將字符串解析成多個變量
$string
, array &$result
): void
如果 string
是 URL 傳遞入的查詢字符串(query string),則將它解析為變量并設(shè)置到當(dāng)前作用域(如果提供了 result
則會設(shè)置到該數(shù)組里 )。
string
輸入的字符串。
result
如果設(shè)置了第二個變量 result
,
變量將會以數(shù)組元素的形式存入到這個數(shù)組,作為替代。
極度不建議 在沒有 result
參數(shù)的情況下使用此函數(shù),
并且在 PHP 7.2 中將廢棄不設(shè)置參數(shù)的行為。
沒有返回值。
版本 | 說明 |
---|---|
8.0.0 |
result 是必須項。
|
7.2.0 |
不帶第二個參數(shù)的情況下使用 parse_str() 會產(chǎn)生
E_DEPRECATED 警告。
|
示例 #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 的變量名不能帶「點」和「空格」,所以它們會被轉(zhuǎn)化成下劃線。
用本函數(shù)帶 result
參數(shù),也會應(yīng)用同樣規(guī)則到數(shù)組的鍵名。
示例 #2 parse_str() 名稱改寫
<?php
parse_str("My Value=Something");
echo $My_Value; // Something
parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>
注意:
所有創(chuàng)建的變量(或者在設(shè)置第二個參數(shù)的情況下,返回數(shù)組里的值), 都已經(jīng) urldecode() 了。
注意:
要獲取當(dāng)前的
QUERY_STRING
,可以使用 $_SERVER['QUERY_STRING'] 變量。 所以你可能想要閱讀 來自 PHP 之外的變量這個章節(jié)。
注意:
本函數(shù)受 magic_quotes_gpc 設(shè)置的影響, 和 $_GET、 $_POST 在 PHP 中填充變量相似, parse_str() 也使用了同樣的機制。