• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

PHP学习笔记,curl,file_get_content,include和fopen四种方法获取远程文件速度测试. - 第一缕阳光

Data: 2018-11-23 16:52:03Form: JournalClick: 8

第一缕阳光
PHP学习笔记,curl,file_get_content,include和fopen四种方法获取远程文件速度测试. - 第一缕阳光 - 博客园

这几天在做抓取.发现用PHP的file_get_contents函数来获取远程文件的过程中总是出现失败,并且效率很低下.所以就做了个测试的demo来测试下PHP中各种方法获取文件的速度.

程序里面使用了四种方法   分别是

1,使用输入输出缓冲和include包含远程文件拿到对应url的内容

这个需要开启PHP的allow_url_include选项

2,使用fopen来以只读的方式打开并读取远程文件.

3,使用file_get_contents函数来获取远程url文件.

4,使用PHP的curl拓展来获取远程文件.

具体里面是啥工作原理我不知道,不过通过测试我得到的结果是

第100次调用:get_file_by_curl:used_time ::::0.0732s
100次平均时间:0.084043
失败次数:0

 

第100次调用:get_file_by_file_get_contents:used_time  ::::0.103s
100次平均时间:0.11445643564356
失败次数:0

 

 

第100次调用:get_file_by_fopen:used_time  ::::0.0905s
100次平均时间:0.086212871287129
失败次数:0

 

 

第100次调用:get_file_by_include:used_time  ::::0.1248s
100次平均时间:0.11332079207921
失败次数:0

 

这上面是通过100次请求博客园首页的文件得出的结果  数据不多,但是还是能看出来区别的  用file_get_contents和include+缓冲区这两种方法的速度明显要比curl和fopen两种方式慢

下面是测试代码

<?php
/**
*名称:远程获取文件测试
*作用:测试各种方法获取远程文件的速度
*作者:swordphp@126.com
*创建时间:2013-08-29
*最后修改时间:2013-08-29
**/
ini_set("max_execution_time", "0");
set_time_limit(0);
ini_set("error_reporting", "E_ALL & ~E_NOTICE");
ini_set("allow_url_include",1);
class fileget_test{
    public function __construct(){
 
    }
    //通过CURL拓展获取文件内容
    public function get_file_by_curl(
Name:
<提交>