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中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php实现的ping端口函数实例
Nov 12 PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
PHP闭包函数详解
Feb 13 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 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
人族 Terran 基本策略
2020/03/14 星际争霸
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
利用Python获取操作系统信息实例
2016/09/02 Python
python装饰器实例大详解
2017/10/25 Python
Python中bisect的用法及示例详解
2020/07/20 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
校园门卫岗位职责
2013/12/09 职场文书
普通员工辞职信
2014/01/17 职场文书
初中英语教学反思
2014/01/25 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
中学生自我鉴定
2014/02/04 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
高中家长意见怎么写
2015/06/03 职场文书
七一慰问简报
2015/07/20 职场文书
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis