一般的读取远程文件,
- 我们是使用file_get_contents 但是这个属于一个一个字节读取的,这个效率不高
- PHP中有一种rio类的函数就是readfile函数,他可以一次性读取文本行,效率较高。
下面我们测试一下:
6 | function getData1( $url ){ |
9 | $data = ob_get_contents(); |
14 | function getData2( $url ){ |
15 | $data = file_get_contents ( $url ); |
20 | function getTime( $convert = true) |
22 | return microtime( $convert ); |
27 | return memory_get_usage(); |
36 | $data = getData1( $url ); |
37 | file_put_contents ( 'data1.txt' , $data ); |
39 | echo '文件大小:' . filesize ( 'data1.txt' ). '内存:' .(memory()- $m ). ',耗时:' .(getTime()- $s ); |
46 | $data = getData2( $url ); |
47 | file_put_contents ( 'data2.txt' , $data ); |
49 | echo '文件大小:' . filesize ( 'data2.txt' ). '内存:' .(memory()- $m ). ',耗时:' .(getTime()- $s ); |
测试结果:
测试1:雷霆扫毒url
readfile vs file_get_content
![测试1 测试1](http://www.php10086.com/wp-content/uploads/2012/11/1_thumb.png)
测试2:淘宝商品
readfile vs file_get_content
![测试2 测试2](http://www.php10086.com/wp-content/uploads/2012/11/2_thumb.png)
——对比结果:
远程获取文件效率上:readfile 完胜file_get_contents,以后要学会使用readfile函数读取远程文件,