Автор оригинала: REMO
А если использовать такой код, он отличается от вышеприведенного, тем что getmicrotime(); в случаем чтения фаила в строчку выведены за fopen,fclose. Я думаю это справедливо, т.к. во втором случае они просто скрыты, но присутствуют.
Так вот при таком коде результаты такие:
0.48492503166199
0.1397430896759
0.49172496795654
0.15040302276611
PHP:
<?php
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
} // (c) Crazy =)
$str = "sdfasdjfhl;sdfljkgsdkfjglskdfjgklsdjfgksdjfg\n\r";
$h = fopen('f.txt', 'w');
for ($i=0; $i<10000; $i++)
fwrite($h, $str);
fclose($h);
$b = getmicrotime();
$h = fopen('f.txt', 'r');
$s = fread($h, filesize('f.txt'));
fclose($h);
$e = getmicrotime();
echo $e-$b;
echo '<BR>';
$b = getmicrotime();
$s = file('f.txt');
$e = getmicrotime();
echo $e-$b;
echo '<BR>';
?>
Понятно, что при чтении фаила в строчку это занимает много времени, но если использовать временный фаил, как предлагает fog, то жрет мало памяти.
А в случае чтения фаила в массив, меньше времени, но много памяти.
Возникает вопрос, чем жертовать и что предпочесть? Время или память?