使用_GET检索整个URL,即使是使用&符号

时间:2018-05-31 05:59:49

标签: php url get

我制作了一个快速脚本来检索和解析XML。它只是供内部使用而且我将源URL附加到脚本地址将是一种初始化脚本的便捷方式...

  

www.example.com/feed_analyzer.php?url=www.example.com/an_xml_feed.xml

然后我只是抓住网址......

if (isset($_GET['url'])) {
  $xml_url = $_GET['url']
}

...在$ xml_url检索文件,解析等。

一切都很好,直到这个URL出现了讨厌的参数:

  

www.example.com/an_xml_feed.xml?foo=bar&rice=chips

这当然给我留下了网址“www.example.com/an_xml_feed.xml”

我已经设法使用这个笨重的代码“整理”整个网址:

if (isset($_GET['url'])) {
  foreach($_GET as $key => $value){
   $got .= "&".$key."=".$value;
  }
  $xml_url = ltrim($got,'&url=');
}

有人可以建议一种更优雅的方法。

3 个答案:

答案 0 :(得分:4)

您可以直接使用它来获取整个查询网址:

ltrim($_SERVER['QUERY_STRING'], 'url=');

答案 1 :(得分:0)

urlencode()是要走的路:)

答案 2 :(得分:0)

试试这个

if (isset($_GET['url'])) {
  $query_string = $_SERVER['QUERY_STRING'];
  if (!empty($query_string)) {
     list($key, $xml_url) = explode('url=', $query_string); 
     echo $xml_url;
  }

}