• vB·流水帐

  • 生命不止,折腾不息。
  • 首页
  • 关于
  • 网址收藏
  • 登录
  • file_get_contents的禁忌

    post by vibbow / 2010-1-3 20:57 Sunday

    今天Sugarhosts告诉我,说我的网站时不时的会那个一下(就是CPU占用会瞬间飙升至70%,然后又瞬间跌下来)。我知道,肯定是我的手机版高飞造成的。不过在我看来有两个可疑的地方,一个是远程URL调用的步骤,另一个是自己写的xml拆解重组的步骤。为了搞清楚到底是哪块造成CPU飙升,自己写了N个测试文件,把地址发送给Sugarhosts让他们测试看哪个文件会造成CPU飙升。

    结果让我有些意外,不是我料想的对xml拆解重组时有问题,而是在远程调用URL的时候会造成CPU飙升。再详细点就是:

    使用file_get_contents函数打开远程文件的时候会造成CPU飙升。

    知道了这个结果,我又写了两个测试文件。一个是用curl进行远程URL调用,另一个是用file_get_contents打开本地文件。测试的结果一切正常。呼,至少file_get_contents在打开本地文件时还是正常的,这玩意可比用fopen方便多了。不过在远程URL调用的时候又得用那相对麻烦的curl了...

    再补充:我上上一篇文章说的get_headers函数经测试也会造成CPU飙升。不过由于他只获取HTTP头,所以飙升的没有file_get_contents那么厉害,请大家酌情使用。不过我是肯定会把我那云端链转换工具的探测步骤换成curl了。

    Update: 在PHP的Bug提交页面上我也见到有其他人提交了这个问题了,貌似在新版的PHP里已经解决这个问题了,不过不是很确定,自己没有测试,只是上面说新版里没有重现而已。

    « 以PHPer的方式批量重命名文件 | PHP检测远端文件是否存在»

    评论:

    filegetcontents
    2010-08-12 15:58
    问个,我file_get_contents获取的目标URL会自动转向,如file_get_contents("http://www.google.com")在本机调试,可以获取转向后的页面代码,但是上传到LINUX后,就只能获取当前URL,获取页面代码失败,不知道这个如何解决?
    如果file_get_contents效率不高,用fsockopen()效果如何。。
    回复
    vibbow
    2010-08-12 16:59
    @filegetcontents:首先要声明的是file_get_contents并不会自动转向,至于你出现的跳转问题是当file_get_contents将跳转代码呈现给你的浏览器后你的浏览器跳转了。如果你需要在获取页面的时候也能跳转推荐你用curl函数,curl可以设置跟随跳转的(仅限通过头信息发送的跳转信息)。
    回复
    zyhytcn
    2010-01-04 23:37
    vb兄弟,你的空间是cpu飙升,你知道我的主机用了你的ping插件是啥结果。php整个挂掉啊。。。
    debian最后只能强行shutdown才能关机,老兄您有空改改吧,实在吃不消啊。
    回复
    vibbow
    2010-01-05 00:39
    @zyhytcn:只能说明你用的主机实在是太脆弱了...
    回复
    喜来乐
    2010-01-04 09:58
    围观下,有点专业,基本看不懂--!
    回复
    百转回魂
    2010-01-03 21:59
    很好 用了一次std转换 学校网络好像封了bt类软件
    回复
    取消回复

    发表评论:

  • 搜索

  • 随机日志

    • Weekly tweet log for 2011-10-02
    • 随机友链插件 for Emlog 1.2
    • getSetting插件 For Emlog 0.1
    • Weekly tweet log for 2011-11-20
    • Weekly tweet log for 2012-03-25
  • 最新评论

    • 小哲软件
      品牌機傷不起。。。
    • Louis Han
      都已经i7了 真羡慕啊
    • 伍颢
      试过过,不过还是不行呀,我把默认的模版和我使用的模版都改了,
    • 小笨。狼
      骂楼主的无非就是2种傻逼,1.狗屁不懂还把江东当圣人的废物。
    • vibbow
      很便宜,便宜的超乎你的想象。
  • 链接

    • HaCker-Fan's Blog
    • 快乐忆站
    • 流浪手记
    • zYhYtCn's Blog
    • 奇遇-心情随笔
    • 云端软件论坛
    • 造物虚生之人
    • CLURIES'
    • ss1271的奋斗
    • Dndx的温暖小窝
订阅Rss
Powered by emlog