php代理不了解url params

时间:2015-08-24 11:41:45

标签: php proxy cors url-parameters

由于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个询问标记:一个用于我的脚本,第二个用于第三方脚本。

我已经进入这个问题好几个小时了。如何通过代理联系此类网址?

1 个答案:

答案 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;] 而不是解析网址