由于CORS的限制,我需要通过代理访问网址。我已经在php中实现了一个非常简单的脚本:
<?php
$url=$_GET['purl'];//globals are already decoded
header("Content-Type: application/xml; charset=utf-8");
readfile("http://".$url);
?>
我想阅读的网址是这样的:
someserver.com/blah/ads?env=vp&gdfp_req=1&impl=s&output=xml_vast2&unviewed_position_start=1&url=www.somewebsite.com
所以我尝试:
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
如果执行此操作,则会出现以下错误:
此页面包含以下错误:第2行第1列错误:文档末尾的多余内容下面是直到第一个错误的页面呈现。
我已经检查了文件,没有多余的内容,并且文件格式正确
但是,调试脚本后,我发现只打印了第一个参数:
<?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上有2个询问标记:一个是我的脚本,第二个是第三方脚本。
我已经研究这个问题好几个小时了。如何通过代理访问此类网址?
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']然后解析网址