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循环跳出的问题

复制代码 代码如下://php当前循环为1,循环由里到外依次递增,break默认为1,例如跳出第2层循环for ($i=0;$i<3;$i++){   ...

thinkphp在模型中自动完成session赋值示例代码

相信用过thinkphp的用户都知道thinkphp的模型可以完成很多辅助功能,比如自动验证、自动完成等,今天在开发中遇到自动完成中需要获取session值然后自动赋值的功能,具体看代码...

PHP实现原比例生成缩略图的方法

本文实例讲述了PHP实现原比例生成缩略图的方法。分享给大家供大家参考,具体如下: <?php $image = "jiequ.jpg"; // 原图 $imgstrea...

PHP Trait代码复用类与多继承实现方法详解

PHP Trait代码复用类与多继承实现方法详解

本文实例讲述了PHP Trait代码复用类与多继承实现方法。分享给大家供大家参考,具体如下: 前言 众所周知,一直以来PHP和很多语言一样是单继承的语言,但是常常在编码过程中,我们需要在...

PHP 远程关机实现代码

复制代码 代码如下: <?php /** * 远程启动计算机 * 注意:iis/apache需要有windows/system/cmd.exe执行权限 * name:薛如飞 * q...