將字串解析成多個變數

parse_str

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

parse_str將字串解析成多個變數

說明

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

如果 string 是 URL 傳遞入的查詢字串(query string),則將它解析為變數並設定到目前作用域(如果提供了 result 則會設定到該陣列里 )。

參數

string

輸入的字串。

result

如果設定了第二個變數 result, 變數將會以陣列元素的形式存入到這個陣列,作為替代。

警告

極度不建議 在沒有 result 參數的情況下使用此函式, 並且在 PHP 7.2 中將廢棄不設定參數的行為。

返回值

沒有返回值。

更新日誌

版本 說明
8.0.0 result 是必須項。
7.2.0 不帶第二個參數的情況下使用 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 的變數名不能帶「點」和「空格」,所以它們會被轉化成下劃線。 用本函式帶 result 參數,也會應用同樣規則到陣列的鍵名。

示例 #2 parse_str() 名稱改寫

<?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'] 變數。 所以你可能想要閱讀 來自 PHP 之外的變數這個章節。

注意:

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

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *