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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
PHP array 的加法操作代码
Jul 24 PHP
php中json_encode中文编码问题分析
Sep 13 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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中isset与empty函数的困惑与用法分析
2019/07/05 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python ORM编程基础示例
2020/02/02 Python
python入门之基础语法学习笔记
2020/02/08 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
链表面试题-一个链表的结点结构
2015/05/04 面试题
行政专员岗位职责
2014/01/02 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js