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 相关文章推荐
玩转虚拟域名◎+ .
Oct 09 PHP
PHP中ADODB类详解
Mar 25 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP APP微信提现接口代码
Sep 30 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 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
5.PHP的其他功能
2006/10/09 PHP
遭遇php的in_array低性能问题
2013/09/17 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
利用python3随机生成中文字符的实现方法
2017/11/24 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
pandas分区间,算频率的实例
2019/07/04 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
历史专业毕业生的自我鉴定
2013/11/15 职场文书
面试后的感谢信范文
2014/02/01 职场文书
《去年的树》教学反思
2014/04/11 职场文书
需求分析说明书
2014/05/09 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书