问题:为什么使用 feof 和 echo 的 fget 比仅使用 fread 或 file_get_contents 慢近 9 秒?即使文件实际上是 12 行长并且内存小于 1kb。
附加信息: 这是我用来读取直接从 IBM 获取的文件的 fgets 操作:http: //www.ibm.com/developerworks/opensource/library/os-php-readfiles/
$file_handle = fopen("myfile", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
echo $line;
}
fclose($file_handle);
这是我用来从文件中读取的其他代码:
$articleInner = fread($file, filesize($file)); // Read Entire File;
$data = explode("\n", $articleInner);
foreach( $data as $info ) // looping through read data.
{
这两者的速度差异如此之大!但真正让我感到困惑的是,如果第一个代码块只读取 10 行,那么实际上至少需要 10 秒。这对我来说似乎一点都不实用。