分享下php读取远程文件的三种方法。
方法1,file_get_contents
代码:
<?php $url = http://www.xxx.com/; $contents = file_get_contents($url); //以下避免出现中文乱码 //$getcontent = iconv("gb2312″, "utf-8″,file_get_contents($url)); //echo $getcontent; echo $contents; ?>
有关file_get_contents的用法,请参考:
php file_get_contents抓取页面信息的代码
php file_get_contents函数抓取页面信息的代码
php file_get_contents函数代理获取远程页面的代码
php file_get_contents函数的使用问题
方法2,curl函数方法
代码:
<?php $url = "http://jb200.com/"; $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //在需要用户检测的网页中,增加下面两行 //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD); $contents = curl_exec($ch); curl_close($ch); echo $contents; ?>
有关php curl的用法,请参考文章:
php中开启curl扩展的方法详解
php curl应用实例分析
php curl用法的实例代码
php curl 学习总结
方法3,php文件操作函数法,fopen->fread->fclose打开、读取、关闭文件句柄。
代码:
<?php $handle = fopen ("http://jb200.com/", "rb"); $contents = ""; do { $data = fread($handle, 8192); if (strlen($data) == 0) { break; } $contents .= $data; } while(true); fclose ($handle); echo $contents; ?>
php 文件操作函数的相关内容,请参考:
php文件操作函数的实例详解
php文件操作方法深入详解
php文件操作常用函数汇总
php目录与文件操作的实例教程
总结:
1,使用file_get_contents和fopen必须空间开启allow_url_fopen。
方法:编辑php.ini,设置 allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。
2,使用curl 必须空间开启curl。
建议打开URL时使用file_get_contents()方法,可优化打开速度。