2

我目前正在使用这个插件http://wordpress.org/extend/plugins/repress/它基本上使我的网站成为代理,以便用户可以访问这样的审查网站

www.mywebsite.com/proxy/www.cnn.com 

该插件运行良好,但是当涉及到绝对链接时,插件无法正确解析它并且链接仍然被阻止。该插件开发已停止。所以我需要编写自己的脚本。我一直在到处搜索并阅读我能找到的教程,但没有一个能在这方面特别帮助我。

我知道如何使用 php curl 获取网站并在空白页面上回显。我不知道的是如何设置代理脚本以像上面的示例一样工作,用户可以键入

www.mywebsite.com 

其次是

/proxy.php 

然后是他们的目标网站

/www.cnn.com

目前我有这个设置:

<?php
$url = 'http://www.cnn.com';
$proxy_port = 80;
$proxy = '92.105.140.115';
$timeout = 0;
$referer = 'http://www.mydomain.com'


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);*/
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);       
curl_setopt($ch, CURLOPT_REFERER, $referer);

$data = curl_exec($ch);
curl_close($ch);
echo $data; 
?>

这会拉主页,但没有检索到 CSS 或图像。同样,所有相关链接都被破坏了。我不知道如何应用 proxy_port 和 proxy 变量。我试过了

92.105.140.115:80/www.cnn.com 

但这不起作用。我也不太完全理解这段代码,因为我在一个示例网站上找到了它。

非常欢迎任何答案或教程链接。

谢谢你!

4

2 回答 2

5

拥有一个功能齐全的代理并不是那么简单。已经有许多这样的项目可用。试一试:

玩得开心!

于 2013-02-08T09:52:38.127 回答
0

您不能只在页面中回显 curl 获取网站的结果,因为浏览器会解释 Uris 错误,您需要当用户单击链接时,他会转到您的代理站点而不是原始站点,所以您可以t 只是使用 echo 打印,您需要手动编辑该获取页面中的每个链接,然后再将其打印给用户,我有一个由 php en p.listascuba.com 制作的全功能代理,您无法尝试。

与我联系获取更多信息

于 2013-12-11T16:22:12.100 回答