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中的生成XML文件的4种方法分享
Oct 06 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php中的动态调用实例分析
Jan 07 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 PHP
PHP正则删除HTML代码中宽高样式的方法
Jun 12 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
总结PHP内存释放以及垃圾回收
Mar 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
url decode problem 解决方法
2011/12/26 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
python字符串替换的2种方法
2014/11/30 Python
python连接MySQL数据库实例分析
2015/05/12 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
python验证码图片处理(二值化)
2019/11/01 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
总经理岗位职责描述
2014/02/08 职场文书
老公爱的承诺书
2014/03/31 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
叶问观后感
2015/06/15 职场文书
安全教育的主题班会
2015/08/13 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python