2013-12-21 148 views
0

我覺得我在通過PHP獲取經過編碼的URL中的查詢字符串值時發生了一些基本錯誤。編碼的URL如何獲取查詢字符串值

任何人都可以請指導什麼是最好的方式來從PHP下面的URL獲取查詢字符串值的PHP。

http%3A%2F%2Fwwww.mycompany.org%2FmyStatusListener%3FmtmId%3D%25MTMID%25%26statusCode%3D%25 - 
STATUSCODE%25%26statusDate%3D%25STATUSDATE%25%26mnc%3D%25MNC%25%26mcc%3D%25MNC%25%26 - 
blocked%3D%25BLOCKED%25%0A 

非常感謝

回答

1

只使用rawurldecode,parse_url和parse_str像這樣:

$a="http%3A%2F%2Fwwww.mycompany.org%2FmyStatusListener%3FmtmId%3D%25MTMID%25%26statusCode%3D%25STATUSCODE%25%26statusDate%3D%25STATUSDATE%25%26mn25MNC%25%26mcc%3D%25MNC%25%26blocked%3D%25BLOCKED%25%0A"; 
$b=rawurldecode($a); 
$c=parse_url($b,PHP_URL_QUERY); 
parse_str($c,$d); 
print_r($d); 
+0

這一個更好 –

-1

使用urldecode看到這裏的例子http://codepad.org/jANpV0Vz

UPDATE:

示例:

$s = 'http%3A%2F%2Fwwww.mycompany.org%2FmyStatusListener%3FmtmId%3D%25MTMID%25%26statusCode%3D%25STATUSCODE%25%26statusDate%3D%25STATUSDATE%25%26mnc%3D%25MNC%25%26mcc%3D%25MNC%25%26blocked%3D%25BLOCKED%25%0A'; 

$url = urldecode($s); 

$query = parse_url($url, PHP_URL_QUERY); 
$elements = explode('&', $query); 
$result = array(); 

foreach ($elements as $element) { 
    list($k, $v) = explode('=', $element); 
    $result[$k] = $v; 
} 
print_r($result);