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中去除所有js,html,css代码
Oct 12 PHP
php验证是否是md5编码的简单代码
Apr 01 PHP
最常用的8款PHP调试工具
Jul 06 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
php验证码生成代码
Nov 11 PHP
PHP实现伪静态方法汇总
Jan 13 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
Laravel实现定时任务的示例代码
Aug 10 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
PHP后期静态绑定实例浅析
Dec 21 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预定义常量
2006/12/25 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
php 中文处理函数集合
2008/08/27 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
javascript 回调函数详解
2014/11/11 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Python调用.NET库的方法步骤
2019/12/27 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
数控机床专业自荐信
2014/05/19 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
怎么用Python识别手势数字
2021/06/07 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python