2011-08-05 52 views
0

這段代碼工作正常:PHP:parsed_str幫助,請

$url="Http://www.youtube.com/watch?v=upenR6n7xWY&feature=BFa&list=PL88ACC6CB00DC2B44&index=4"; 

$parsed_url=parse_url($url); 

echo "<br><br><pre>"; 
print_r(parse_url($url)); 
echo "</pre>"; 
echo $parsed_url['query']; 

但是當我添加以下:

echo "<br><br><pre>"; 
$parsed_str=parse_str($parsed_url['query']); 
print_r($parsed_str); 
echo "</pre>"; 

什麼也沒有發生。我懷疑parse_str()不能正常工作。任何想法我可能做錯了什麼?

回答

1

parse_str()不返回任何內容。它填充變量。

例如,如果你有$查詢的查詢字符串= 「參數= 1個&測試= 2」

後 parse_str($查詢);

你可以檢查var_dump($ param)和var_dump($ test) - 這兩個變量會爲你創建。

1

基本上,parse_str轉換

v=upenR6n7xWY&feature=BFa&list=PL88ACC6CB00DC2B44&index=4 

$v = "upenR6n7xWY" 
$feature = "BFa" 
$list = "PL88ACC6CB00DC2B44" 
$index = 4 
2

如果要具有的parse_str()結果在陣列中,傳遞數組作爲第二個參數:

parse_str($parsed_url['query'], $parsed_str); 

var_dump($parsed_str); 

我將假定用戶輸入URL。如果是這樣,不使用parse_str而沒有第二個參數!。這樣做會導致安全風險,用戶可以用自己選擇的值覆蓋任意變量。