我有一個字符串像這樣保存在MySQL表:如何將查詢字符串轉換爲PHP中的變量?
?name1=value1&name2=value2&name3=value3
最初這個數據只會被用來獲得數據發送到另一個劇本,但現在我發現自己需要它的其他東西。
PHP中是否有預定義的函數來將這些對變爲變量或數組?或者我將不得不手動去做?
我有一個字符串像這樣保存在MySQL表:如何將查詢字符串轉換爲PHP中的變量?
?name1=value1&name2=value2&name3=value3
最初這個數據只會被用來獲得數據發送到另一個劇本,但現在我發現自己需要它的其他東西。
PHP中是否有預定義的函數來將這些對變爲變量或數組?或者我將不得不手動去做?
(功能欠佳的)PHP函數parse_str
可以做到這一點,但您需要先修剪掉最初的問號。
$arr = array();
parse_str($str, $arr);
print_r($arr);
有一些注意事項這個函數提到的手冊頁:
magic_quotes_gpc
設置影響此函數的操作方式,因爲這是PHP內部用於解碼查詢字符串和urlencoded POST主體的例程。如果需要未受到magic_quotes_gpc
設置一個便攜的解決方案則是相當簡單的手工編寫的解碼功能,採用urldecode
辦理值編碼:
function parseQueryString($queryString) {
$result = array();
$pairs = explode("&", $queryString);
foreach ($pairs as $pair) {
$pairArr = split("=", $pair, 2);
$result[urldecode($pairArr[0])] = urldecode($pairArr[1]);
}
return $result;
}
該解決方案可能會比內置的parse_args
功能稍慢,但無論PHP配置如何,都具有一致的行爲優勢。當然,你將再次需要從頭開始剝離?
,這並不包含在任何示例中。
Var_export可能會有用。
$arr=?name1=value1&name2=value2&name3=value3
var_export($arr);