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

yipeiwu_com7年前PHP代码库

三个函数虽然都是读取资源的函数,但各自的应用场景不同。

curl多用于互联网网页之间的抓取,fopen多用于读取文件,而file_get_contents多用于获取静态页面的内容。

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. curl可以模拟多种请求,例如:POST数据,表单提交等,用户可以按照自己的需求来定制请求。而fopen / file_get_contents只能使用get方式获取数据。

相关文章

php自定义函数实现汉字转换utf8编码的方法

本文实例讲述了php自定义函数实现汉字转换utf8编码的方法。分享给大家供大家参考,具体如下: 该函数有两部分组成: function htou($c) { $n = (ord(...

PHP实现实时生成并下载超大数据量的EXCEL文件详解

前言 最近在工作中接到一个需求,通过选择的时间段导出对应的用户访问日志到excel中, 由于用户量较大,经常会有导出50万加数据的情况。而常用的PHPexcel包需要把所有数据拿到后才能...

计算一段日期内的周末天数的php代码(星期六,星期日总和)

复制代码 代码如下: /* | Author: Yang Yu <niceses@gmail.com> | @param char|int $start_date 一个有效的...

PHP中使用gettext来支持多语言的方法

我们今天用一个简单的实例说明一下在PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的), 从而实现PHP的i18n. 现在, 我们...

php str_replace的替换漏洞

定义和用法 str_replace() 函数使用一个字符串替换字符串中的另一些字符。 语法 str_replace(find,replace,string,count)参数 描述 fin...