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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
让PHP支持页面回退的两种方法[转]
Feb 14 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
php实现图片缩略图的方法
Mar 29 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
laravel自定义分页效果
Jul 23 PHP
PHP中危险的file_put_contents函数详解
Nov 04 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 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数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
PHP 图片处理
2020/09/16 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
javascript数组详解
2014/10/22 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
用python做游戏的细节详解
2019/06/25 Python
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
大学校庆策划书
2014/01/31 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
企业出纳岗位职责
2014/03/12 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
合伙协议书范本
2014/04/21 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
2014年后勤工作总结
2014/11/18 职场文书
教师辞职书范文
2015/02/26 职场文书
休假证明书
2015/06/24 职场文书
高中英语教学反思范文
2016/03/02 职场文书