繁体   English   中英

编码的URL如何获取查询字符串值

[英]Encoded URL how to Get Query String Values

我感觉我在通过PHP获取ecoded URL中的查询字符串值时犯了一些基本错误。

任何人都可以指导从下面的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

非常感谢

就像这样使用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);

使用urldecode在此处查看示例http://codepad.org/jANpV0Vz

更新:

例:

$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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM