Posted on

php讀取檔案的幾種方式比較

下面是在處理速度非常慢的電腦上的運作時間

這個是處理25mb的檔案的處理速度

$data = `cat /tmp/test.zip`;
// 1.05 seconds
$fh = fopen('/tmp/test.zip', 'r');
$data = fread($fh, filesize('/tmp/test.zip'));
fclose($fh);
// 1.31 seconds

$data = file_get_contents('/tmp/test.zip');
// 1.33 seconds

下面是處理21k的文字檔的處理速度

$data = `cat /tmp/test.txt`;
// 1.98 seconds
$fh = fopen('/tmp/test.txt', 'r');
$data = fread($fh, filesize('/tmp/test.txt'));
fclose($fh);
// 0.00082 seconds

$data = file_get_contents('/tmp/test.txt');
// 0.0069 seconds

另外還有一篇文章 是在解釋同為檔案系統的成員的fgets和fread之間的差異
我覺得還不錯 有興趣的朋友也可以參考看看
http://plog.longwin.com.tw/programming/2008/08/04/php-fgets-fread-diff-example-2008