首页 | 技巧收集 | 资源分享 | 网管文集 | 开发资料 | 生活点滴 | 轻松一下 | 原创作品 | 网海拾贝 
用户登陆
用户:
密码:
 

最新评论

文章搜索

 标题   内容

电脑城JS(奸商)对抗守则 暴笑: 地产新名词的全新演绎版
雪天 资料:PHP来做Proxy
[ 分类:开发资料 ]   [阅读:10826 ]   [ 日期:2004-11-25 ]   [ 来自:中国数字部落 ]
如果你有一个国外的虚拟主机,想必它都会提供PHP吧。如果有一个站点在国内不能访问,但是在国外你的虚拟主机却能够访问,那是不是你能够通过那台虚拟主机做Proxy来让你从国内访问呢? 

  但是那没有SSH的权限,所以你没有办法通过通讯层直接做Proxy,(如果有SSh当然你可以直接用SecureCRT里的PortMapping功能,那要简单多了)。所以你现在有的资源就是http或者ftp。所以用服务器端的一个脚本来获得另一个网址的内容就是唯一的出路了。还好现在不用再用那些可怜并且难懂的Perl了,因为PHP对于HTTP和RegularExpression的支持已经非常完善了。所以我这里就做了一个试验,代码如下,很简单的说。 

Code:
$url = $_GET["url"]; 

echo (URLopen($url)); 


function URLopen($url) 



// Fake the browser type 

ini_set('user_agent','MSIE 4.0b2;'); 


$parsedUrl = parse_url($url); 


$fp = fopen("$url",'r'); 


$result = ""; 

while (!feof($fp)) 



$result .= fread($fp, 500); 




if(preg_match('/jpg|gif|jpeg$/i',$url)==0){ 

echo ($parsedUrl["host"]); 

$result = preg_replace('/(href|src)="(?!http://'.$parsedUrl["host"].'/)(.+)"/i','\1="getpage.php?url=http://'.$parsedUrl["host"].'/\2"',$result); 


$pattern = '/(href|src)="(http://)/i' 

$replace = '\1="getpage.php?url=http://' 

$result = preg_replace($pattern,$replace,$result); 



return $result; 




  得到一个URL上的内容,然后如果是HTML(不是图片)就替换里面的路径,如果原来写的是相对路径,则先替换成绝对路径。达到的效果是一个页面里面的所有链接都变成了从这个脚本的一个参数。就如同Hotmail里处理外部link一样。 

  国外的虚拟主机2G是7.95美元(一年付费),也就是每年800人民币不到就能够做一个几乎是通行无阻的Proxy了。大家试试这个PHP脚本能用否,也希望有大侠修改修改后为人民服务一下。



[本日志由 飘雪 于 2004-11-25 09:18 AM 编辑]
引用通告地址 (0):
复制引用地址http://www.pxue.com/trackback.asp?tbID=183
复制引用地址http://www.pxue.com/trackback.asp?tbID=183&CP=GBK
Tag:
暂时没有评论
发表评论
作者: 用户名: 密码:  同时注册?验证码: 验证码,看不清楚?请点击刷新验证码
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
 
COPYRIGHT © 飘雪工作室 WWW.PXUE.COM ALLRIGHTS RESERVED Processed in 0.093750 second(s) , 15 queries
粤ICP备05001034号