我正在使用PHP中的file()函数读取包含大约50k行的文件.但是,由于文件的内容作为数组存储在存储器中,所以它的内存不足错误.还有其他的方法吗?
而且,存储的行的长度是可变的.
这是代码.文件也是700kB不是mB.
private static function readscoreFile($scoreFile)
{
$file = file($scoreFile);
$relations = array();
for($i = 1; $i < count($file); $i++)
{
$relation = explode("\t",trim($file[$i]));
$relation = array(
'pwId_1' => $relation[0],'pwId_2' => $relation[1],'score' => $relation[2],);
if($relation['score'] > 0)
{
$relations[] = $relation;
}
}
unset($file);
return $relations;
}
使用
fopen,fread和
fclose顺序读取文件:
$handle = fopen($filename,'r');
if ($handle) {
while (!feof($handle)) {
echo fread($handle,8192);
}
fclose($handle);
}