Ik wil een bestand regel voor regel lezen, maar zonder het volledig in het geheugen te laden.
Mijn bestand is te groot om in het geheugen te openen, en als ik dat probeer krijg ik altijd fouten als het geheugen vol is.
Het bestand is 1 GB groot.
Je kunt de fgets()
functie gebruiken om het bestand regel voor regel te lezen:
$handle = fopen("inputfile.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
// process the line read.
}
fclose($handle);
} else {
// error opening the file.
}
Gebruik bufferingtechnieken om het bestand te lezen.
$filename = "test.txt";
$source_file = fopen( $filename, "r" ) or die("Couldn't open $filename");
while (!feof($source_file)) {
$buffer = fread($source_file, 4096); // use a buffer of 4KB
$buffer = str_replace($old,$new,$buffer);
///
}