SORU
19 Temmuz 2009, Pazar


Yükleme-iyi-oluşturulmuş olmayan zaman devre dışı uyarıları HTML DomDocument (PHP)

Bazı HTML dosyalarını ayrıştırmak gerekiyor, ancak, iyi biçimlendirilmiş değildir ve PHP için uyarılar yazdırır. Bu hata ayıklama/programlama yoluyla uyarı davranışı önlemek istiyorum. Tavsiye lütfen. Teşekkür ederim!

Kod:

// create a DOM document and load the HTML data
$xmlDoc = new DomDocument;
// this dumps out the warnings
$xmlDoc->loadHTML($fetchResult);

Bu:

@$xmlDoc->loadHTML($fetchResult)

uyarılara ama nasıl bu uyarılar programlama yoluyla yakalayabilir miyim? bastırmak olabilir

CEVAP
9 Temmuz 2013, Salı


Uyarıları gizlemek için, içten ayrıştırma işlemi gerçekleştirmek için kullanılan libxml konusunda birkaç ipucu var:

libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();

libxml_use_internal_errors(true) hatalar ve uyarılar Kendin idare edeceksin ve onları komut çıktısını uğraşmak istemediğini gösterir.

Bu @ operatörü aynı değildir. Uyarılar perde arkasında toplanan ve günlük yapmak veya çağrıyı konular listesine geri dönmek isterseniz libxml_get_errors() kullanarak onları alabilirsiniz daha sonra.

Toplanan uyarılar kullanıyorsanız olsun, her zaman libxml_clear_errors() çağırarak sıra temizlemelisiniz.

Durumunu koruyarak

Eğer libxml kullanan başka bir kod varsa bu kodu değiştirmez emin olmak için yararlı olabilirglobalhata işleme devlet; bunun için, libxml_use_internal_errors() dönüş değeri önceki durumunu kaydetmek için kullanabilirsiniz.

// modify state
$libxml_previous_state = libxml_use_internal_errors(true);
// parse
$dom->loadHTML($html);
// handle errors
libxml_clear_errors();
// restore
libxml_use_internal_errors($libxml_previous_state);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • super1988guy

    super1988guy

    9 Aralık 2007
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008