parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_str將字符串解析成多個(gè)變量

說(shuō)明

parse_str(string $string, array &$result): void

如果 string 是 URL 傳遞入的查詢(xún)字符串(query string),則將它解析為變量并設(shè)置到當(dāng)前作用域(如果提供了 result 則會(huì)設(shè)置到該數(shù)組里 )。

參數(shù)

string

輸入的字符串。

result

如果設(shè)置了第二個(gè)變量 result, 變量將會(huì)以數(shù)組元素的形式存入到這個(gè)數(shù)組,作為替代。

警告

極度不建議 在沒(méi)有 result 參數(shù)的情況下使用此函數(shù), 并且在 PHP 7.2 中將廢棄不設(shè)置參數(shù)的行為。

返回值

沒(méi)有返回值。

更新日志

版本 說(shuō)明
8.0.0 result 是必須項(xiàng)。
7.2.0 不帶第二個(gè)參數(shù)的情況下使用 parse_str() 會(huì)產(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 的變量名不能帶「點(diǎn)」和「空格」,所以它們會(huì)被轉(zhuǎn)化成下劃線(xiàn)。 用本函數(shù)帶 result 參數(shù),也會(huì)應(yīng)用同樣規(guī)則到數(shù)組的鍵名。

示例 #2 parse_str() 名稱(chēng)改寫(xiě)

<?php
parse_str
("My Value=Something");
echo 
$My_Value// Something

parse_str("My Value=Something"$output);
echo 
$output['My_Value']; // Something
?>

注釋

注意:

所有創(chuàng)建的變量(或者在設(shè)置第二個(gè)參數(shù)的情況下,返回?cái)?shù)組里的值), 都已經(jīng) urldecode() 了。

注意:

要獲取當(dāng)前的 QUERY_STRING,可以使用 $_SERVER['QUERY_STRING'] 變量。 所以你可能想要閱讀 來(lái)自 PHP 之外的變量這個(gè)章節(jié)。

注意:

本函數(shù)受 magic_quotes_gpc 設(shè)置的影響, 和 $_GET$_POST 在 PHP 中填充變量相似, parse_str() 也使用了同樣的機(jī)制。

參見(jiàn)