Hi,
Ich verwende das folgende Script, um daten aus einer datei (myfile.dat) zu laden und dann gleich wieder in eine andere datei zu speichern (myfile1.dat); d.h. quasi, dass ich die datei kopiere.
Wenn ich jedoch dass Script auf einem Server mit der standart 8MB PHP-Speicherbegrenzung laufen lasse, dann bekomme ich diese Fehlermeldung:
"Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes)" (Problem HERE).
Warum braucht diese Funktion so viel Speicher?
Eigentlich müsste der obere code so funktionieren:
ein datenpacket wird in den speicher geladen, und in die zweite datei geschrieben. das wird sooft wiederholt bis EOF erreicht ist.
ich hoffe, dass ihr mir weiterhelfen könnt,
Ich verwende das folgende Script, um daten aus einer datei (myfile.dat) zu laden und dann gleich wieder in eine andere datei zu speichern (myfile1.dat); d.h. quasi, dass ich die datei kopiere.
PHP-Code:
$fs=fopen("myfile.dat","r");
$fd=fopen("myfile1.dat","w");
$buffer_size=4096;
$buffer = fread($fs,$buffer_size);
while (!feof($fs))
{
fwrite($fd,$buffer);
$buffer = fread($fs,$buffer_size); //Problem HERE
}
fclose($fs);
fclose($fd);
"Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes)" (Problem HERE).
Warum braucht diese Funktion so viel Speicher?
Eigentlich müsste der obere code so funktionieren:
ein datenpacket wird in den speicher geladen, und in die zweite datei geschrieben. das wird sooft wiederholt bis EOF erreicht ist.
ich hoffe, dass ihr mir weiterhelfen könnt,
Kommentar