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 相关文章推荐
使用 php4 加速 web 传输
Oct 09 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
python传递参数方式小结
2015/04/17 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
公司道歉信范文
2014/01/09 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
安全教育主题班会教案
2015/08/12 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers