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实现文件上传二法
Oct 09 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
THINKPHP支持YAML配置文件的设置方法
Mar 17 PHP
十大使用PHP框架的理由
Sep 26 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 PHP
php 实现银联商务H5支付的示例代码
Oct 12 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
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
php实用代码片段整理
2016/11/12 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
Less 安装及基本用法
2018/05/05 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
教师自我评价范文
2013/12/16 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
班级学习计划书
2014/04/27 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
环保守法证明
2015/06/24 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android
Golang 实现WebSockets
2022/04/24 Golang
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
MySQL深分页问题解决思路
2022/12/24 MySQL