parse_str() 是 PHP 內建函數,可將 URL 查詢字串(如 id=1&name=test)解析為變數或陣列,極適合處理 API 回傳、URL 參數等場景。
parse_str(string $string, array &$result = null): void
| 參數 | 說明 |
|---|---|
$string | 必需。要解析的查詢字串。 |
$result | 可選。指定儲存解析結果的陣列變數名稱。若省略,變數將直接註冊到當前符號表(不推薦,易造成覆蓋)。 |
$str = "id=23&name=John%20Adams";
parse_str($str, $output);
echo $output['name']; // 輸出:John Adams
parse_str("id=23&name=John%20Adams");
echo $id; // 23
echo $name; // John Adams
$str = "1&errid=1&fee=2&balance=2582&fails=&msgid=634541149212681528&msg=全部發送成功。";
parse_str($str, $output);
echo $output['msgid']; // 634541149212681528
php.ini 中 magic_quotes_gpc = On,解析前會自動 addslashes(),需注意去除斜線。$result 陣列時,同名變數會被覆蓋,建議永遠使用陣列接收。%20 轉空格),無需額外 urldecode()。善用 parse_str() 搭配陣列接收,能讓查詢字串處理更安全、程式碼更清晰。