Czytam plik zawierający około 50k linii przy użyciu funkcji file() w PHP. Jednak jego błąd braku pamięci, ponieważ zawartość pliku są przechowywane w pamięci jako tablicy. Czy jest jakiś inny sposób?Najmniejszy sposób na odczyt pamięci w PHP
Ponadto długości zapisanych linii są zmienne.
Oto kod. Również plik ma wartość 700kB, a nie 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;
}
Wiem, że to pytanie jest stary, ale dwie rzeczy tutaj. 1. przeczytaj plik wiersz po linii. 2. Błąd braku pamięci może polegać na tym, że przechowujesz wszystko również w tablicy, zazwyczaj nie jest to dobry pomysł bez jakiejś kontroli i wiedzy o pamięci, którą masz – Atherion