由于CORS的限制,我需要通过代理访问url。我在php中实现了一个非常简单的脚本:
<?php
$url=$_GET['purl'];//globals are already decoded
header("Content-Type: application/xml; charset=utf-8");
readfile("http://".$url);
?>
我想要读取的url是这样的:
someserver.com/blah/ads ? env = vp& gdfp_req = 1, impl = s&输出= xml_vast2& unviewed_position_start = 1, url = www.somewebsite.com
所以我尝试:
localhost/proxy.php ?流苏= someserver.com/blah/ads ? env = vp& gdfp_req = 1, impl = s&输出= xml_vast2& unviewed_position_start = 1, url = www.somewebsite.com
如果我执行这个,我得到以下错误:
此页包含以下错误:第1列第2行错误:文档末尾有多余的内容下面是页面到第一个错误的呈现。
我已经检查了文件,没有这样的额外内容,文档格式良好
但是,在调试脚本时,我发现只打印了第一个参数:<?php
$url=$_GET['purl'];//globals are already decoded
echo $url;
die();
header("Content-Type: application/xml; charset=utf-8");
readfile("http://".$url);
?>
它打印:
someserver.com/blah/ads ? env = vp
注意我在url上有两个问号:一个是我的脚本,第二个是第三方脚本。
我已经讨论这个问题好几个小时了。我如何通过代理访问这种url ?
localhost/proxy.php?purl=someserver.com/blah/ads?env=vp&gdfp_req=1&impl=s&output=xml_vast2&unviewed_position_start=1&url=www.somewebsite.com
$_GET["purl"]
$_GET["env"]
$_GET["gdfp_req"]
$_GET["output"]
等等你可以打印所有的URL
在这种情况下使用:$ _SERVER("REQUEST_URI")然后解析url