PHP DOM işleme

4 Cevap php

PHP HTML manipüle iyi yöntemler için arıyorum. Örneğin, ben şu anda yaşıyorum sorun hatalı biçimlendirilmiş html ile uğraşıyor var.

Böyle bir şey görünüyor girişi alıyorum:

<div>This is some <b>text

Fark olarak, html kapatma etiketleri eksik. Ben bu sorunu çözmek için regex veya bir XML Parser kullanabilirsiniz. Ancak, ben gelecekte diğer DOM manipülasyon yapmak zorunda olasıdır. DOM manipülasyon ile nasıl JavaScript fırsatlar benzer DOM manipülasyon işlemek herhangi bir iyi bir PHP kitaplıkları olup olmadığını merak ediyorum.

4 Cevap

PHP vardır a PECL extension that gives you access to the features of HTML Tidy. Düzenli olduğunu ve akıllı bir şekilde kapatma etiketleri gibi bir kod almak gerekir oldukça güçlü bir kütüphanedir.

Ben ithalat öncesinde bir seri ilan sistemi tarafından bana gönderilen hatalı biçimlendirilmiş XML ve HTML temizlemek için kullanabilirsiniz.

Ben henüz en yararlı ve yalındır kütüphanesi olmak için PHP Basit HTML DOM buldum. PECL daha iyi diyebilirim.

I how to use it to scrape myspace artist tour dates üzerine bir makale yazdım (sadece bir örnek.) İşte php simple html dom parser. için bir bağlantı

Şimdi yapılı-DOM kütüphane bu sorunu kolaylıkla çözebilir. LoadHTML yöntem yük yöntem olmaz ise biçimlendirilmiş XML kabul edecektir.

$d = new DOMDocument;
$d->loadHTML('<div>This is some <b>text');
$d->saveHTML();

Çıkış olacaktır:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <body>
    <div>This is some <b>text</b></div>
  </body>
</html>

DOM işlemek için ben ne arıyorsanız this olduğunu düşünüyorum. Ben web HTML belgeleri ayrıştırmak için kullanılan ettik ve bu benim için iyi çalıştı.