Diese Fehlermeldung wird angezeigt. Haben Sie irgendwelche Vorschläge?
A 43148176 Bytes) in php
Diese Fehlermeldung wird angezeigt. Haben Sie irgendwelche Vorschläge?
A 43148176 Bytes) in php
Wenn Ihr Skript erwartet um diese große Menge an Speicher zuzuweisen, können Sie das Speicherlimit erhöhen, indem Sie diese Zeile in Ihre php-Datei einfügen
ini_set('memory_limit', '44M');
donde 44M
ist die Menge, die Sie voraussichtlich verbrauchen werden.
Cependant Meistens bedeutet diese Fehlermeldung, dass das Skript macht etwas falsch und die Erhöhung des Speicherlimits führt nur zu derselben Fehlermeldung mit anderen Zahlen.
Anstatt das Speicherlimit zu erhöhen, müssen Sie den Code so umschreiben, dass er nicht mehr so viel Speicher zuweist. Zum Beispiel die Verarbeitung großer Datenmengen in kleineren Teilen, das Zurücksetzen von Variablen, die große Werte enthalten, aber nicht mehr benötigt werden, usw.
Hier sind zwei einfache Methoden, um das Limit beim Shared Hosting zu erhöhen:
Wenn Sie Zugang zu Ihrer PHP.ini-Datei haben, ändern Sie die Zeile in PHP.ini Wenn Ihre Zeile 32M anzeigt, versuchen Sie 64M: memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)
Wenn Sie keinen Zugang zu PHP.ini haben, versuchen Sie, dies in eine .htaccess-Datei einzutragen: php_value memory_limit 64M
Ihr Skript verbraucht zu viel Speicher. Dies kann in PHP häufig passieren, wenn eine Schleife außer Kontrolle geraten ist und Sie bei jedem Schleifendurchlauf Objekte erstellen oder Arrays hinzufügen.
Prüfung auf Endlosschleifen.
Wenn das nicht das Problem ist, versuchen Sie, PHP zu helfen, indem Sie Objekte, mit denen Sie fertig sind, zerstören, indem Sie sie auf null setzen. z.B.. $OldVar = null;
Überprüfen Sie auch den Code, in dem der Fehler tatsächlich auftritt. Würden Sie erwarten, dass in dieser Zeile eine große Menge an Speicher zugewiesen wird? Wenn nicht, versuchen Sie herauszufinden, was schief gelaufen ist...
Tun :
ini_set('memory_limit', '-1');
ist niemals gut. Wenn Sie eine sehr große Datei lesen wollen, ist es am besten, sie Stück für Stück zu kopieren. Probieren Sie den folgenden Code als beste Praxis aus.
$path = 'path_to_file_.txt';
$file = fopen($path, 'r');
$len = 1024; // 1MB is reasonable for me. You can choose anything though, but do not make it too big
$output = fread( $file, $len );
while (!feof($file)) {
$output .= fread( $file, $len );
}
fclose($file);
echo 'Output is: ' . $output;
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.