ursus contionabundo: Warum kein XAMPP? Eine Demonstration am Beispiel des konkreten Problems.

Beitrag lesen

Nun ja. Schauen wir mal. Originale Datei mit einer Änderung: Der Dateiname:

<?php
//-----------------------------------------------------
// Datei einlesen
//-----------------------------------------------------
$filename = "test.txt";
if ( ! $arr_file = file( $filename ) ) {
    echo "Fatal: '$filename' konnte nicht gelesen werden.";
    trigger_error( "'$filename' konnte nicht gelesen werden.", E_USER_ERROR );
}
//-----------------------------------------------------
// Zeilen ausgeben
//-----------------------------------------------------
foreach ($arr_file AS $zeile) {
echo $zeile."<br>";
}

memory_limit ist auf 128MB gesetzt:

grep memory_limit /etc/php/7.2/cli/php.ini 
memory_limit = 128M 

Datei ist 24 MB groß:

ls -s -h test.txt 
24M test.txt

Run!

php test.php | wc -c
27464320

Fazit: Auf Grund des allgemein mehr Speicher fressenden Umgangs von Windows (PHP unter Windows benutzt natürlich die Windows-Libs) wird von PHP unter Unixoiden für die Funktion file() weniger Speicher gebraucht, so dass die selbe Operation, die unter Windows am identischen Speicherlimit scheiterte, unter Linux störungsfrei durchläuft.