在PHP中,我如何解析以下查询字符串以获取整个变量“url”,该变量应包含其后的所有内容?
http://www.mydomain.com/?c=log&m=index&url=https://www.facebook.com/logout.php?next=http%3A%2F%2Fwww.anotherdomain.com&access_token=AAACPpB5pr5gBAJLFZBGaU6SM7UMlGQob7QUBf3aI0DIHrHWtcTGHirS0UrwwDDZBEiIQHeWfkOVCFbEXrFt6TdVlbPrXmV6xyPDI9pPQZDZD
$_GET['url']
放弃了“www.anotherdomain.com”之后的所有内容,因为它遇到了另一个“&”。
问题是'url'是由Facebook提供的。 如果我urlencode整个字符串,它将变为无效。 我如何解析'url'以编程方式只对需要更改的部分进行urlencode? p>
答案 0 :(得分:2)
在传递之前,网址应该是urlencode
d,否则它是一个无效的查询字符串参数。
答案 1 :(得分:2)
尝试这样的事情
$link = "http://www.mydomain.com/?c=log&m=index&url=";
$link .= rawurlencode('https://www.facebook.com/logout.php?next=http%3A%2F%2Fwww.anotherdomain.com');
$link .= '&access_token=AAACPpB5pr5gBAJLFZBGaU6SM7UMlGQob7QUBf3aI0DIHrHWtcTGHirS0UrwwDDZBEiIQHeWfkOVCFbEXrFt6TdVlbPrXmV6xyPDI9pPQZDZD';
检索数据使用
$url_get = rawurldecode($_GET['url']);