PHP下通过file_get_contents的代理使用方法


Posted in PHP onFebruary 16, 2011

PHP使用file_get_contents的代理方法获取远程网页的代码。

<?php 
$url = "https://3water.com/"; 
$ctx = stream_context_create(array( 
'http' => array('timeout' => 5, 
'proxy' => 'tcp://60.175.203.243:8080', 
'request_fulluri' => True,) 
) 
); 
$result = file_get_contents($url, False, $ctx); 
echo $result; 
?>

另外一种 curl 的方式使用代理的方法:
function postPage($url) 
{ 
$response = ""; 
$rd=rand(1,4); 
$proxy='http://221.214.27.253:808'; 
if($rd==2) $proxy='http://222.77.14.56:8088'; 
if($rd==3) $proxy='http://202.98.123.126:8080'; 
if($rd==4) $proxy='http://60.14.97.38:8080'; 
if($url != "") { 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_PROXY, $proxy); 
$response = curl_exec($ch); 
if(curl_errno($ch)) $response = ""; 
curl_close($ch); 
} 
return $response; 
}

用file_get_contents解决ajax垮域问题

在ajax运用中有时候会垮域调用文件,而浏览器为了安全会默认给这种操作提出警告,甚至直接阻止。如果是IE会弹出一个警告窗口,询问你是否继续操作,只有你同意了IE才会调用垮域的文件。而其它浏览器,如火狐、Opera默认设置下则会直接提示错误,阻止调用外域文件。这会给用户不好的操作体验,如果想通过用户修改浏览器的安全设置来解决这个问题是不现实的,最好是在服务器端解决。

在服务器端可以使用一个同域的文件做为代理文件,这个代理文件将获得外域文件的内容,然后再传递给ajax。这样ajax就不是调用外域文件,而是调用同域的这个代理文件,安全问题也就解决了。

如果你的服务器端支持PHP的话,可以使用file_get_contents这个函数,看到它的名称就已经知道它有获得其它文件内容的功能了。它的详细用法可以参看PHP官方网站上的file_get_contents用法一页,下面是它的简单实例。

<?php 
$serverAddress = 'http://s.3water.com'; 
//获得外域文件内容 
$randomNumber = file_get_contents($serverAddress); 
//输出内容 
echo $randomNumber; 
?>
PHP 相关文章推荐
PHP 和 HTML
Oct 09 PHP
php下使用以下代码连接并测试
Apr 09 PHP
PHP MemCached 高级缓存应用代码
Aug 05 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
php引用地址改变变量值的问题
Mar 23 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 PHP
php文件上传表单摘自drupal的代码
Feb 15 #PHP
php 连接mysql连接被重置的解决方法
Feb 15 #PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 #PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 #PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 #PHP
PHP开发中常用的字符串操作函数
Feb 08 #PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 #PHP
You might like
PHP5 的对象赋值机制介绍
2011/08/02 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
基于jquery的$.ajax async使用
2011/10/19 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Python中的模块和包概念介绍
2015/04/13 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
Python验证码截取识别代码实例
2020/05/16 Python
如何提高SQL Server的安全性
2016/07/25 面试题
什么时候需要进行强制类型转换
2016/09/03 面试题
店面销售职位的职责
2014/03/09 职场文书
初级党校心得体会
2014/09/11 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
户外活动总结
2015/02/04 职场文书
聚会通知怎么写
2015/04/23 职场文书
复兴之路观后感
2015/06/02 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis