使用file_get_contents获取远程文件内容

» WordPress » 使用file_get_contents获取远程文件内容

利用php的file_get_contents函数可以获取远程文件的内容,虽然效率可能比curl低点,但是好处就是足够简单而且安全。

使用file_get_contents获取远程文件内容-极客公园

前言

前几日,云落分享了一个获取远程文件类容的方法,因为是来自我的实际应用,所以还不错,但是发现了一些不足的地方,今天重新写一下斌切丰富一下内容。

代码分析

先贴一下前几天的代码

<?php
$url = "http://git.oschina.net/yunluo/API/raw/master/notice.txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$notice = curl_exec($ch);
echo $notice;
?>

这段代码会直接使用curl显示文件内容,但是问题来了,因为curl是php的扩展,有的主机为了安全会金庸curl的,宁外php本地调试的时候也是关闭curl的,所以会发生报错,所以这段代码是不可取的,所以云落对他重新改写了

<?php
    if (function_exists('curl_init')) {
        $url = "http://git.oschina.net/yunluo/API/raw/master/notice.txt";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        $dxycontent = curl_exec($ch);
        echo $dxycontent;
    } else {
        echo '汗!貌似您的服务器尚未开启curl扩展,无法收到来自云落的通知,请联系您的主机商开启,本地调试请无视';
    }
?>

修改后的版本是对curl扩展做一个判断,看看服务器到底有木有打开curl扩展,如果打开了,就直接显示文件,如果没打开就显示一段提示文字。
虽然修复了问题,但是又有一个问题来了,我只是显示一段文字而已,我也不是是用什么做什么大事的,所以我为什么要写那么多的代码呢??
经过一些瞎掰的检测,发现file_get_contents获取远程文件内容的速度不比curl慢,在一些文件较少的情况下可能还比curl扩展要快得多,所以我又重写了代码

<?php echo file_get_contents( "http://git.oschina.net/yunluo/API/raw/master/notice.txt" ); ?>
我了个大擦。这次的代码好少啊。。。。。

-- 完 --

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 Replies to “使用file_get_contents获取远程文件内容”