用法:void parse_str ( string $str [, array &$arr] )
parse_str用來解析(分離)URL中的查詢字串(Query String),所謂查詢字串是指一個URL中?後面的部分,如http://localhost/test/result.php?name=anve&age=21,則查詢字串就是“name=anve&age=21”。
當然在PHP裡,你可以用$_GET數組來取得查詢字串的值,但有時候parse_str會方便些,特別是當查詢字串中的變數名(對應於上面例子中的name和age)不知道的時候。
index.html:
<html>
<body>
<form action="result.php" method="get">
name: <input type="text" name="name">
age: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>
result.php:
<html>
<body>
<?php
$string=$_SERVER['QUERY_STRING']; // 用$_SERVER['QUERY_STRING']取得查詢字串。
echo '$string: '.$string.'<br>';
parse_str($string);
echo '$name: '.$name.'<br>';
echo '$age: '.$age.'<br>'; // 經過parse_str後,產生了$name和$age兩個變數,並被正確賦值。
parse_str($string,$arr); // 第二個參數$arr是一個用來儲存結果的數組,這樣就不會像剛才那樣產生多個變數了。
echo '<pre>';
print_r($arr); // $arr['name']和$arr['age']被正確賦值。
echo '</pre>';
?>
</body>
</html>
另註:parse_str會自動進行urldecode(URL解碼)。例如在index.html的name中輸入“波波”,我的測試結果是: