parse_str

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

parse_str將字符串解析成多個變量

說明

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

如果 string 是 URL 傳遞入的查詢字符串(query string),則將它解析為變量并設(shè)置到當(dāng)前作用域(如果提供了 result 則會設(shè)置到該數(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() 也使用了同樣的機(jī)制。

參見