Php 使用_GET检索整个URL,即使使用了符号
我制作了一个快速脚本来检索和解析XML。它只是供内部使用,我认为将提要URL附加到脚本地址将是初始化脚本的方便方法 www.example.com/feed_analyzer.php?url=www.example.com/an_xml_feed.xml 然后我简单地抓取URLPhp 使用_GET检索整个URL,即使使用了符号,php,url,get,Php,Url,Get,我制作了一个快速脚本来检索和解析XML。它只是供内部使用,我认为将提要URL附加到脚本地址将是初始化脚本的方便方法 www.example.com/feed_analyzer.php?url=www.example.com/an_xml_feed.xml 然后我简单地抓取URL if (isset($_GET['url'])) { $xml_url = $_GET['url'] } …检索$xml\u url处的文件,解析等 一切都很好,直到这个URL出现了令人讨厌的参数: www.exa
if (isset($_GET['url'])) {
$xml_url = $_GET['url']
}
…检索$xml\u url处的文件,解析等
一切都很好,直到这个URL出现了令人讨厌的参数:
www.example.com/an_xml_feed.xml?foo=bar&rice=chips
这当然给我留下了URL“www.example.com/an_xml_feed.xml”
我已使用以下笨拙的代码成功地“修补”了整个URL:
if (isset($_GET['url'])) {
foreach($_GET as $key => $value){
$got .= "&".$key."=".$value;
}
$xml_url = ltrim($got,'&url=');
}
有人能推荐一种更优雅的方法吗。
urlencode()
是一种方法:)urlencode()
是一种方法:)您可以直接使用它来获取整个查询url:
ltrim($_SERVER['QUERY_STRING'], 'url=');
您可以直接使用它来获取整个查询url:
ltrim($_SERVER['QUERY_STRING'], 'url=');
像这样试试
if (isset($_GET['url'])) {
$query_string = $_SERVER['QUERY_STRING'];
if (!empty($query_string)) {
list($key, $xml_url) = explode('url=', $query_string);
echo $xml_url;
}
}像这样试试
if (isset($_GET['url'])) {
$query_string = $_SERVER['QUERY_STRING'];
if (!empty($query_string)) {
list($key, $xml_url) = explode('url=', $query_string);
echo $xml_url;
}
}您当然可以将任何您喜欢的内容作为请求获取参数提交,但是您需要
urlencode()
它,否则它将与URL解析本身发生冲突。您当然可以将任何您喜欢的内容作为请求获取参数提交,但是您需要urlencode()
它,否则它将与URL解析本身发生冲突。好的,但以何种方式?好的,但以何种方式?优雅的单线解决方案已测试并运行,非常感谢优雅的单线解决方案已测试并运行,非常感谢