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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
php反弹shell实现代码
Apr 22 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
php实现的一段简单概率相关代码
May 30 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
Apr 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
ThinkPHP的I方法使用详解
2014/06/18 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
PHP模板解析类实例
2015/07/09 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
基于jQuery的js分页代码
2010/06/10 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
Vue 数据绑定的原理分析
2020/11/16 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
《九色鹿》教学反思
2014/02/27 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
赢在执行观后感
2015/06/16 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python