• 明天我们家宝宝满月了
  • 一晚上忙了好几个小时,终于把支付前台通知解决了
  • 原计划要增加另外一种支付方案,现在可能要被搁置了
  • 今天上午刚刚注册了华为云,然后刚刚华为云的客服小姐姐就来电话了,小姐姐声音挺好听的
  • 今天无意中注册了华为云,然后发现跟阿里云基本一个模样,甚至连价格都一样
  • 继续测试一下
  • 发现一个问题就是,微信语音发送说说的时候,不要拦截没有UA的数据请求
  • 测试一下连接
  • 终于下雪了
  • 有赞的支付暂时用不了了,所以重新开发另一个支付插件

使用file_get_contents获取远程文件内容

WordPress 云落 4年前 (2015-04-16) 586次浏览 已收录 4个评论
文章目录[隐藏]

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

wallhaven-34478

前言

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

代码分析

先贴一下前几天的代码

<?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" ); ?>
我了个大擦。这次的代码好少啊。。。。。

-- 完 --
weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用file_get_contents获取远程文件内容
喜欢 (2)
云落
关于作者:
无折腾,不生活,我是一个WordPress菜鸟,一个玩淘宝的卖家,欢迎你认识我,我是云落!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. 参考下,两个有用的函数get√
    家香2015-05-02 17:48 回复 未知操作系统 | Internet Explorer 4.01
  2. file_get_contents 用16进制打开效率会更高,不过还不咋地curl感觉好用点。
    小幻2015-04-26 05:56 回复 Windows 8.1 | Chrome 38.0.2125.122
    • 云落
      curl需要扩展支持,某些主机会报错
      云落2015-04-26 10:02 回复 Windows 7 | Firefox浏览器 37.0
  3. 云落
    不错的文章
    哦哦2015-04-21 12:43 回复 Windows XP | Firefox浏览器 36.0