2016-02-23 35 views
1

有没有办法通过URL参数设置代理?该脚本应该在Ubuntu服务器上运行。或者是否有可能用鱿鱼或类似的东西做到这一点?URL参数代理脚本

http://proxyserver.com:3128/http://google.de

我已经尝试了一些PHP脚本代理,但它真的与它的工作不是。它应该打开一个文件作为流,但一些脚本加载整个文件,然后我得到一个输出或它不适用于Safari和每个浏览器我得到的错误与JavaScript获取流的信息。

可能这会有所帮助,为什么它不适用于safari。我不知道如何编辑标题更多。接受-范围等设置

回答

0

另一个编辑

这里试试这个代码。邮政实施。

$url = $_GET["url"]; 
$method = $_SERVER["REQUEST_METHOD"]; 
$data = array($_POST); 
$options = array(
    "http" => array(
    "header" => "Content-type: application/x-www-form-urlencoded\r\n", 
    "method" => $method, 
    "content" => http_build_query($data), 
), 
); 
$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
$filter = "/(http|https|ftp|ftps)(:\/\/)/i"; 
$result = preg_replace($filter, "http://YOURDOMAIN.com/FOLDER/LOCATIONOFTHEPROXY.php?url=$1$2", $result); 
echo $result; 
var_dump($result); 

编辑

Here我发现一些代码,使用PHP为POST。现在只需要实施它。

<?php 
$url = "url to post to; 
$data = array("comment" => "Testing PhP Post", "name" => "A PhP Script"); 
// use key "http" even if you send the request to https://... 
$options = array(
    "http" => array(
    "header" => "Content-type: application/x-www-form-urlencoded\r\n", 
    "method" => "POST", 
    "content" => http_build_query($data), 
), 
); 
$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
if ($result === FALSE) { /* Handle error */ } 
echo $result; 
var_dump($result); 
?> 

你试过file_get_contents()

试试这个:

<?php 
    echo file_get_contents($_GET["url"]); 
?> 

呼叫与像?url=http://google.com/查询该文件。

+0

糟糕!它是'file_get_contents',而不是'get_file_contents'。 –

+0

是的,我尝试了很多变化,这是行不通的 –

+0

您的PhP /服务器/托管允许您请求任意页面(您的域之外的文件/发送请求到服务器)? –

0

如果你想有一个PHP的代理,开始时,你应该Glype Proxy

加上去,您的网址http://proxyserver.com:3128/http://google.de是无效的,并认为错误的URL。

要修复它,你必须转义另一个URL(使用查询sting等)。例如$URL_in_PHP = "http://proxyserver.com:3128/?url=".urlencode('http://google.de');

var URL_in_javascript = "http://proxyserver.com:3128/?url="+encodeURI('http://google.de');

,并告诉你的代理服务器导航到$_GET['url']

+0

这是我提到的php代理脚本之一。不要使用Safari和其他浏览器上的错误 –

0

我解决它。

我用了一个带有proxy_pass参数的nginx服务器