zoukankan      html  css  js  c++  java
  • php中 curl, fsockopen ,file_get_contents 三个函数

    赵永斌:
    有些时候用file_get_contents()调用外部文件,容易超时报错。换成curl后就可以.具体原因不清楚
    curl 效率比file_get_contents()和fsockopen()高一些,原因是CURL会自动对DNS信息进行缓存(亮点啊 有我待亲测)

    范佳鹏:
    file_get_contents curl fsockopen
    在当前所请求环境下选择性操作,没有一概而论:
    具我们公司开发KBI应用来看:
    刚开始采用:file_get_contents
    后来采用:fsockopen
    最后到至今采用:curl

    (远程)我个人理解到的表述如下(不对请指出,不到位请补充)
    file_get_contents 需要php.ini里开启allow_url_fopen,请求http时,使用的是http_fopen_wrapper,不会keeplive.curl是可以的。
    file_get_contents()单个执行效率高,返回没有头的信息。
    这个是读取一般文件的时候并没有什么问题,但是在读取远程问题的时候就会出现问题。
    如果是要打一个持续连接,多次请求多个页面。那么file_get_contents和fopen就会出问题。
    取得的内容也可能会不对。所以做一些类似采集工作的时候,肯定就有问题了。
    sock较底层,配置麻烦,不易操作。 返回完整信息。

    潘少宁-腾讯:

    file_get_contents 虽然可以获得某URL的内容,但不能post  get啊。
    curl 则可以post和get啊。还可以获得head信息
    而socket则更底层。可以设置基于UDP或是TCP协议去交互
    file_get_contents 和 curl 能干的,socket都能干。
    socket能干的,curl 就不一定能干了
    file_get_contents  更多的时候 只是去拉取数据。效率比较高  也比较简单。
    赵的情况这个我也遇到过,我通过CURL设置host 就OK了。  这和网络环境有关系

  • 相关阅读:
    如何在ubuntu里面使用JNI?
    sql server 关键字一
    自己编写的 objectDataSource 配合 GridView 实现分页...
    委托和匿名委托的比较
    实现 IEnumerable IEnumator 接口的类,可直接用作 Gridivew 的数据源
    ASP.NET 中的页面事件执行顺序
    泛型,集合的根本区别
    匿名委托的示例,贴一下以供参考...
    ajax "Sys 未定义" 的问题解决方法
    抽象工厂模式(C#)
  • 原文地址:https://www.cnblogs.com/lalaza/p/2985571.html
Copyright © 2011-2022 走看看