Come risolvere PHP Errore fatale Consentita la dimensione della memoria di 838.8608 byte esaurita
ini_set ( “memory_limit”,”16M“);
Questo imposterà il limite di memoria a 16 MB, anziché 8 MB. Puoi, e dovresti, armeggiare con questo numero in modo che sia il più basso possibile senza ripetere quel messaggio di errore. Questo modificherà solo il limite di memoria per quel particolare file PHP.
In alternativa, è possibile modificare il file php.ini fino al limite di memoria. Ciò influirà su tutti gli script sul tuo server. Basta aprire php.ini e trovare la riga che legge "memory_limit" e modificarla:
memory_limit = 16M
Ho notato nel mio file PHP.ini che il mio valore predefinito è molto più alto a 128M. Quindi, se dovessi ricevere questo messaggio di errore, leggerebbe: "Errore irreversibile: dimensione di memoria consentita di 134217728 byte esauriti ..." e ovviamente è un problema molto più grande. Ma ha la stessa soluzione di "Errore irreversibile: dimensione di memoria consentita di 8388608 byte esauriti ..." o "Errore irreversibile: dimensioni di memoria consentite di 16777216 byte esauriti ..." o qualsiasi altra cosa. Apparentemente, il default memory_limit è stato aumentato da 8M a 16M in PHP 5.2.0 ed ora è 128M per PHP 5.3.0, il che spiegherebbe perché non si può ottenere questo messaggio di errore.
È anche possibile disabilitare il limite di memoria impostando memory_limit su -1 in PHP.ini.
memory_limit = -1
Di solito non è una buona idea, per ovvi motivi.
Nota: puoi anche utilizzare la linea memory_limit nella tua pagina .htaccess.
Ora, ricorda, questa è solo una soluzione. Davvero, lo script PHP dovrebbe non avere un valore superiore a 8 MB, a meno che tu non stia caricando file o facendo qualcos'altro che ovviamente richiede un sacco di memoria. Quello che dovresti davvero fare è cercare di capire perché il tuo script stia usando così tanta memoria e cerchi di risolverlo. Un modo per capire quanta memoria usa lo script PHP è usare la funzione PHP memory_get_usage (). Basta farlo eco in qualsiasi punto del tuo script per scoprire dove si sta verificando l'utilizzo della memoria:
echo memory_get_usage ();
Se ricevi questo messaggio di errore in Drupal o Joomla, il probabile colpevole è un nuovo modulo o pacchetto. Ad esempio, in Drupal, la pagina di amministrazione / moduli viene caricata ogni modulo nella tua installazione Drupal, che può diventare peloso se un modulo personalizzato è bacato, corrotto o hackerato. Prova a disattivare i moduli uno per uno per identificare chi sta causando la festa. Inoltre, alcuni provider di hosting ignoreranno i tuoi tentativi di modificare i limiti di memoria per il codice PHP, quindi potresti dover contattare il tuo supporto di hosting per assisterti. Ho trovato a volte ho bisogno di modificare il file php.ini ea volte inserire il codice nel file .htaccess. In ogni caso, spero che queste informazioni siano sufficienti per farti arrivare!