`

【转】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_content 和curl以及fopen 效率分析

    PHP提供了多种方法来实现这一目的,其中最为常见的三种方式是使用file_get_contents()函数、curl扩展以及fopen()函数。虽然这三个函数都可以实现资源的读取,但是它们的效率和适用场景存在差异。本篇将详细分析这三...

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

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

    深入file_get_contents与curl函数的详解

    在PHP中,`file_get_contents` 和 `curl` 都是用来获取远程资源的函数,但它们的工作原理和适用场景有所不同。`file_get_contents` 函数简单易用,它通过流的方式直接读取指定URL的内容,如果`allow_url_fopen`选项...

    php中使用Curl、socket、file_get_contents三种方法POST提交数据

    在PHP中,获取远程内容的方法主要有三种:Curl、socket和`file_get_contents`。每种方法都有其独特的特性和适用场景。以下是这三种方法的详细介绍: 1. **Curl (Client URL Library)** Curl 是一个强大的命令行...

    解析PHP中的file_get_contents获取远程页面乱码的问题

    在PHP编程中,`file_get_contents` 是一个非常实用的函数,用于从本地或远程位置读取文件内容。然而,当尝试获取的远程页面已经经过gzip压缩时,可能会遇到返回内容显示为乱码的问题。这是因为`file_get_contents`...

    php中file_get_contents与curl性能比较分析

    在PHP中,`file_get_contents`和`curl`都是用于从远程服务器获取数据的函数,但它们在性能、特性和用途上存在显著差异。以下是对这两个函数的详细比较: 1. **DNS缓存**: - `file_get_contents` 和 `fopen` 每次...

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

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

    PHP file_get_contents设置超时处理方法

    在PHP中,set_time_limit函数是用来设置脚本执行的最大时间,然而,这个函数并不适用于file_get_contents函数的超时控制。file_get_contents函数读取URL超时是由其他机制控制的。 从PHP 5.0版本开始,file_get_...

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

    在PHP编程中,`file_get_contents` 是一个非常实用的函数,它允许程序读取URL内容,包括HTTP和HTTPS协议的资源。然而,当尝试通过`file_get_contents` 访问HTTPS连接时,可能会遇到“Unable to find the wrapper ...

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

    在PHP中,读取本地文件是常见的操作,可以使用`fopen`和`file_get_contents`两个函数来完成。这两个函数各有特点,适用于不同的场景。 1. `fopen()`函数: `fopen()`是一个非常灵活的函数,它可以用于打开文件或者...

    php中file_get_contents()函数用法实例

    file_get_contents()函数是PHP中的一个内置函数,主要用于将文件或远程URL的内容读取到字符串变量中。它是一个简单而强大的函数,常用于获取数据、读取文件内容、获取网页内容等场景。在深入探讨file_get_contents()...

    PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题

    在PHP中,`cURL`和`file_get_contents`都是用于获取远程资源的函数,但它们在性能和功能上存在一些显著的区别。本篇文章将详细探讨这两种方法在获取网页标题时的实现方式以及它们的效率和稳定性差异。 首先,我们来...

    PHP 获取页面内容和保存页面内容

    在PHP中,可以使用内置的`file_get_contents()`函数来获取远程或本地文件的内容。这个函数非常简单易用,只需要提供URL作为参数即可。例如,如果我们想要获取网站"http://example.com"的页面内容,代码如下: ```...

    php远程文件下载类.zip

    在PHP中,我们可以利用cURL库或者file_get_contents函数来下载远程文件。cURL库提供了丰富的选项来定制HTTP请求,而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...

Global site tag (gtag.js) - Google Analytics