Bu hata iletisi, herhangi bir öneriniz sunulan ediliyor?
Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 bytes) in php
Burada paylaşılan barındırma sınırı artırmak için iki basit yöntem vardır:
If you have access to your PHP.ini file, change the line in PHP.ini
If your line shows 32M try 64M:
memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)
If you don't have access to PHP.ini try adding this to an .htaccess file:
php_value memory_limit 64M
Script çok fazla bellek kullanıyor. Eğer kontrol tükendi ve nesneleri oluşturma veya döngünün her geçişte diziler ekliyoruz bir döngü varsa bu genellikle PHP olabilir.
Sonsuz döngü kontrol edin.
Bu sorun değil, denemek ve null onları ayarlayarak ile tamamladı nesneleri yok ederek PHP yardım. örn. $OldVar = null;
Hata gerçekten de olur kodunu kontrol edin. Eğer bu hat belleğe büyük bir miktar tahsis edilmesini beklersiniz? Değilse, denemek ve yanlış gitti anlamaya ...
Bu hızlı fark daha bellek tüketir bir şekilde PHP program maalesef kolaydır. Yerine referansları kullanarak kopyalama dizeleri, diziler ve nesneler PHP 5 daha fazla otomatik olarak PHP 4 daha bu yapmak gerekiyordu olsa, bunu yapmak. Ama birkaç adımdan fazla bütünlüğü içinde belirlenen veri ile uğraşan küçük mantıksal birim işleme göre de savurgan olduğunu olacak Aynı anda. Klasik örnek bir veritabanı büyük resultsets ile çalışıyor: En programcılar foreach()
ile bir veya birden fazla defa bir diziye tüm resultset getir ve daha sonra üzerinde döngü. Bir anda bir satır almak ve işlemek için bir while()
döngü kullanmak verimli çok daha fazla bellek olduğunu. Aynı şey, bir dosyayı işleme için geçerlidir.
Eğer bir dosyayı okumak için çalışıyorsanız, o PHP bellek alacak. Örneğin, açmak ve bir MP3 dosyasını okumak için çalışıyorsanız (diyelim ki, gibi, $ data = file ("http://mydomain.com/path/sample.mp3") belleğe tüm çekmek için gidiyor .
Nelson anlaşılacağı gibi, aslında bu kadar bellek kullanarak gerekiyorsa maksimum bellek sınırı artırmak için çalışabilirsiniz.