php中 curl, fsockopen ,file_get_contents 三个函数

网站建设:
有些时候用file_get_contents()调用外部文件,容易超时报错。换成curl后就能够.具体缘由不清楚
curl 效率比file_get_contents()和fsockopen()高一些,缘由是CURL会自动对DNS信息进行缓存(亮点啊 有我待亲测)php

网站建设:
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了。  这和网络环境有关系。 (fblww-0309)网络

相关文章
相关标签/搜索