parse_str

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

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

說明

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

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

參數(shù)

string

輸入的字符串。

result

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

警告

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

返回值

沒有返回值。

更新日志

版本 說明
8.0.0 result 是必須項。
7.2.0 不帶第二個參數(shù)的情況下使用 parse_str() 會產生 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 的變量名不能帶「點」和「空格」,所以它們會被轉化成下劃線。 用本函數(shù)帶 result 參數(shù),也會應用同樣規(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ù)組里的值), 都已經(jīng) urldecode() 了。

注意:

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

注意:

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

參見