web-dev-qa-db-de.com

Zulässige Speichergröße von 134217728 Byte erschöpft

Heiß, dieses Problem zu lösen und warum passiert es?

Zend Server Log:

Schwerwiegender PHP-Fehler: Die zulässige Speichergröße von 134217728 Byte ist erschöpft (versuchte, 538798977 Bytes zuzuordnen) in C:\Programme (x86)\Zend\Apache2\htdocs\test\modules\main.php in Zeile 3

Die Datei main.php erzeugt keinen Fehler, wenn sie direkt vom Browser ausgeführt wird. Wenn ich jedoch seine Funktionen aus einer anderen PHO-Datei verwende, druckt Zend Log den oben genannten Fehler.

11
You Kuper

Ich habe auch dieses Problem angetroffen.

Erhöhen Sie die folgenden Variablen, damit die Seitenausführung nicht angehalten wird:

  • max_input_time
  • memory_limit
  • max_execution_time
13
shail

Erhöhen Sie entweder die Speichergrenze in php.ini oder versuchen Sie, große Datenstrukturen (wie Arrays) aus Ihrer Anwendung heraus zu optimieren.

Wenn Ihre Anwendung PHP 128 MB RAM verwendet, ist auf jeden Fall etwas schiefgelaufen.

Was tun Sie, wie Fluffeh in den Kommentaren feststellt, um 500 MB RAM zu verwenden?

10
slugonamission

Versuche dies:

ini_set('memory_limit', '-1');

php.net/memory_limit

Der Server benötigt unbegrenzt Speicherplatz.

6
user1427811

Zusätzlich zu user1427811 können Sie time_limit und memory_limit vor und nach dem Herunterladen der Datei überwachen:

function custom_put_contents($source_url='',$local_path=''){

    $time_limit = ini_get('max_execution_time');
    $memory_limit = ini_get('memory_limit');

    set_time_limit(0);
    ini_set('memory_limit', '-1');      

    $remote_contents=file_get_contents($source_url);
    $response=file_put_contents($local_path, $remote_contents);

    set_time_limit($time_limit);
    ini_set('memory_limit', $memory_limit); 

    return $response;
}
1
RafaSashi