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者的疑难问答(2)
Oct 09 PHP
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
简单的php文件上传(实例)
Oct 27 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
php简单生成随机数的方法
Jul 30 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 PHP
php实现的操作excel类详解
Jan 15 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
swoole_process实现进程池的方法示例
Oct 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
php方法调用模式与函数调用模式简例
2011/09/20 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
python简易远程控制单线程版
2018/06/20 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
浅谈Python 参数与变量
2020/06/20 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
触摸春天教学反思
2014/02/03 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
2014年学校工作总结
2014/11/20 职场文书
2015年教务工作总结
2015/05/23 职场文书
党课主持词大全
2015/06/30 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL