`

【转】php中fopen, file_get_contents, curl的区别

    博客分类:
  • PHP
阅读更多

1. fopen /file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS 查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen /file_get_contents 好很多。


2. fopen /file_get_contents在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。


3. fopen / file_get_contents函数会受到php.ini文件中allow_url_open选项配置的影响。如果该配置关闭了,则该函数也就失效了。而curl不受该配置的影响。


4. curl可以模拟多种请求,例如:POST数据,表单提交等,用户可以按照自己的需求来定制请求。而fopen / file_get_contents只能使用get方式获取数据。file_get_contents 获取远程文件时会把结果都存在一个字符串中 fiels函数则会储存成数组形式。


因此,我还是比较倾向于使用curl来访问远程url。Php有curl模块扩展,功能很是强大。
用到采集的时候还是比较喜欢用PHP的采集类 Snoopy,链接地址: http://sourceforge.net/projects/snoopy/。

 

 

本文转自:http://www.fhand.com/blog/archives/580.html

 

分享到:
评论

相关推荐

    php中file_get_contents与curl性能比较分析

    在php中如果不仔细的去分析性能会发现file_get_contents与curl两个同很多共同点的,他们都可以采集文件打开文件,但是如果仔细一对比会发现很多不同点,下面我们一起来看看file_get_contents与curl区别。 PHP中fopen...

    php中file_get_content 和curl以及fopen 效率分析

    curl多用于互联网网页之间的抓取,fopen多用于读取文件,而file_get_contents多用于获取静态页面的内容。 1. fopen /file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息...

    深入file_get_contents与curl函数的详解

    有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容。那就是可以使用另外一个函数curl。下面是file_get_contents和curl两个函数同样功能的不同写法file_...

    深入file_get_contents函数抓取内容失败的原因分析

    用file_get_contents来抓取页面内容不成功,可能是因为有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容。那就是可以使用另外一个函数curl。下面是...

    关于file_get_contents返回为空或函数不可用的解决方案

    方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。如果你使用的是虚拟主机可以考虑用curl函数来代替。curl函数的使用示例:复制代码 代码如下:$ch =...

    php读取本地文件常用函数(fopen与file_get_contents)

    下面我们以.txt文件为实例来介绍php读取本地文件的函数,读取文件我们可以利用fopen或file_get_contents来读取,file_get_contents更简单而fopen需要fread配合才可以显示读出的内容。1.首先来介绍一下fopen(&#41...

    解决file_get_contents无法请求https连接的方法

    错误: Warning: fopen() [function.fopen]: Unable to find the wrapper “https” – did you forget to enable it ...3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,

    PHP下载远程图片的几种方法总结

    本文演示3个从远程URL下载图片,并保存到本地文件中的方法,包括file_get_contents,curl和fopen。 1. 使用file_get_contents function dlfile($file_url, $save_to) { $content = file_get_contents&#40...

    PHP请求远程地址设置超时时间的解决方法

    php请求远程地址设置超时时间,主要讲解file_get_contents、fopen、curl这三个简单常用函数设置超时时间的方法,一般情况下建议使用curl,性能最好,效率也最高。 1、file_get_contents 请求超时设置 $timeout = ...

    curl实现站外采集的方法和技巧

    关于curl与file_get_contents,摘抄一段通俗易懂的对比:file_get_contents其实是一堆内置的文件操作函数的合并版本,比如file_exists,fopen,fread,fclose,专门提供给懒人用的,而且它主要是用来对付本地文件的,但...

    PHP判断远程url是否有效的几种方法小结

    解决办法: 使用PHP解决 使用file_get_contents函数,不过优缺点如果url无法访问,会出现终止程序问题 使用curl返回,然后判断是否正确执行 使用get_headers函数,根据HTTP返回值查看是否有200 使用js解决: 使用...

    php发送get、post请求的6种方法简明总结

    主要介绍了php发送get、post请求的6种方法简明总结,分别为使用file_get_contents 、fopen、fsockopen、curl来发送GET和POST请求,需要的朋友可以参考下

    ga-collection:根据收集协议的谷歌分析。 对 MXit 特别有用

    ( ) 使用file_get_contents阻止,但没有cURL 。 特征简单的配置自动命中包括和忘记笔记非阻塞确保您的服务器安装了php_curl 。 阻塞确保您的服务器将allow_url_fopen标志设置为On 。用法PHP打开并编辑google...

    php中请求url的五种方法总结

    最近开发中遇到一个问题,程序第4行会请求一个url,通过查找相关的资料发现有多种方法,本文给大家介绍了关于php中请求url的五种方法,分别是用fopen()函数、file()函数、file_get_contents(&#...

    image-to-base64:转换图像 2 base64 代码。 将图像转换为 base64 代码的非常简单的代码。 Base64 代码在网络上非常流行,并且使用了所有的 css 代码

    生成图像使用file_get_contents、fopen(未准备好)和curl(未准备好)的base64代码 查找图像 mime 类型使用 finfo 类和更多属性 find ( getimagesize - exif ) 函数(模型已准备好但尚未准备好使用) 输出:图片...

    PHP抓取网页、解析HTML常用的方法总结

    2.file_get_contents()函数 3.fopen()->fread()->fclose()方式 4.curl方式 5.fsockopen()函数,socket方式 6.使用开源工具,如:snoopy PHP解析XML或HTML主要方式 1.正则表达式 2.PHP DOM...

    php抓取页面与代码解析 推荐

    file_get_contents()函数 3. fopen()->fread()->fclose()模式 4.curl方式 5. fsockopen()函数 socket模式 6. 使用插件(如:http://sourceforge.net/projects/snoopy/) 二、PHP解析html或...

    在WordPress中实现发送http请求的相关函数解析

    在 PHP 中发送 Http 请求(GET / POST)有很多的方法,比如 file_get_contents() 函数、fopen() 函数或者 cURL 扩展,但由于服务器的情况不同,所以不一定会兼容所有情况,这样想要发送 Http 请求则...

    PHP中4种常用的抓取网络数据方法

    主要介绍了PHP中4种常用的抓取网络数据方法,本文讲解使用file_get_contents函数、fopen函数、curl库三种常见方法抓取网络数据,并给出了代码实例,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics