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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
PHP生成UTF8文件的方法
May 15 PHP
openPNE常用方法分享
Nov 29 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
Mar 16 PHP
Laravel5权限管理方法详解
Jul 26 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php流量统计功能的实现代码
2012/09/29 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
js实现下一页页码效果
2017/03/07 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
AJAX的全称是什么
2012/11/06 面试题
关于读书的演讲稿1000字
2014/08/27 职场文书
少先队活动总结
2014/08/29 职场文书
委托证明范本
2014/11/25 职场文书
工作检讨书大全
2015/01/26 职场文书
银行自荐信怎么写
2015/03/05 职场文书
七年级作文之环保作文
2019/10/17 职场文书
500字作文之难忘的同学
2019/12/20 职场文书