file_get_contents和fread之间有什么区别

时间:2011-08-25 12:08:31

标签: php file file-io

之间有什么区别
$contents = file_get_contents("folder/somefile.txt")

$handle = fopen("folder/somefile.txt", "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

在性能,文件指针处理和内存管理方面?

如果OS允许,file_get_contents是否使用mmap这是真的吗?

3 个答案:

答案 0 :(得分:5)

fread对你可以阅读的字符数有限制,并且它更适合解析数据。

file_get_contents对输入没有限制(我知道)。这用于外部API访问等。

答案 1 :(得分:4)

fread()读取二进制数据,file_get_contents()将数据作为字符串返回。

答案 2 :(得分:2)

好奇的结果! file_get_contents()函数应该是fopen的包装器,但是fopen和fread的解耦似乎会使性能变慢。 http://www.ebrueggeman.com/blog/php_benchmarking_fopen