PHP 5 DOMDocument :: yük

2 Cevap php

Ben farklı işlevler benim komut bir 10MB + XML dosyası birkaç kez açın:

$dom = DOMDocument::load( $file ) or die('couldnt open');

1) bir belge yükleme eski tarz üstünde mi?

I am using PHP 5. Oppening it statically?

Mümkünse 2), XML dosyasının yüklenmesini kapatmak gerekir mi?

Kez birkaç bin ve XML dosyasının düğümleri yoluyla ben döngü bazen komut sadece aniden sona erer, çünkü ben onun neden bellek sorunları sanıyorum.

Herhangi bir yardım için teşekkür ederiz

2 Cevap

Bir DOM çözümleyici kullanarak, tüm XML belge belleğe yükleniyor - Büyük bir belge ile çalışırken sorunlara yol açabilir (I know, you probably don't have much of a choice)

Her şeyden önce, birden fazla kez aynı belgeyi açmaya çalışacaktı:

  • PHP için daha fazla iş anlamına gelir: Büyük bir belgeyi birkaç kez ayrıştırmak için vardır, ve, her zaman, bellekte DOM ağacı inşa
  • daha fazla bellek gerektirebilir - Eğer DOMDocument nesne instanciated hangi fonksiyonu bırakarak Teorik olarak, kim bilir, onun yıkıcı denilen olmalıdır, ve bellek serbest, ama ...


About the "Is the above the old style of loading a document", well, looking at the documentation for DOMDocument::load, it seems it can be called both dynamically (see the example) and statically (see the return value section) ; so, I suppose both solutions are OK, and there is no "old way" nor "new way".


What do you mean by "my script just ends abruptly" ? Do you have a Fatal Error about memory_limit ?

Evet Eğer yapılandırma ayarı bu tür değiştirebilirsiniz eğer, bu daha yüksek bir değere memory_limit ayarlamak için yardımcı olabilir.