由于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
所以我试试:
本地主机/ proxy.php金银丝= someserver.com /嗒嗒/广告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
注意我在网址上有2个询问标记:一个用于我的脚本,第二个用于第三方脚本。
我已经进入这个问题好几个小时了。如何通过代理联系此类网址?
答案 0 :(得分:0)
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"]
等等,您可以打印所有网址
所以在这种情况下使用: $ _SERVER [&#39; REQUEST_URI&#39;] 而不是解析网址