https://github.com/amal/cdom
CDOM adalah komponen DOM HTML/XML/BBCode sederhana. Ini menyediakan parser untuk bahasa markup seperti HTML dalam struktur seperti DOM dan mendukung pencarian melalui DOM dengan kekuatan penuh pemilih CSS3 dan manipulasi apa pun. CDOM didasarkan pada PHP Simple HTML DOM Parser dan berlisensi di bawah lisensi MIT.
Fitur dan kemungkinan utama:
CDOM ditulis untuk Anizoptera CMF oleh Amal Samally (amal.samally di gmail.com)
Penggunaan CDOM sangat sederhana. Sebagian besar metode cocok dengan yang JQuery. Semua metode dikomentari detail. IDE Anda dapat dengan mudah menunjukkan pelengkapan otomatis, jika mendukung PHPDOC. Dan Anda dapat melihat contoh penggunaan di bawah ini. Dokumentasi lengkap akan segera.
Bagaimana cara mendapatkan elemen html?
// Create DOM from string
$ html = file_get_contents ( ' http://www.google.com/ ' );
$ dom = CDom:: fromString ( $ html );
// Find all images
foreach ( $ dom -> find ( ' img ' ) as $ element ) {
echo $ element -> src . "n" ;
}
// Find all links
foreach ( $ dom -> find ( ' a ' ) as $ element ) {
echo $ element -> href . "n" ;
}Bagaimana cara memodifikasi elemen html?
// Create DOM from string
$ dom = CDom:: fromString ( ' <div id="hello">Hello</div><div id="world">World</div> ' );
// Add class to the second div (first last child)
$ dom -> find ( ' div:nth-last-child(1) ' )-> class = ' bar ' ;
// Change text of first div
$ dom -> find ( ' div[id=hello] ' )-> text ( ' foo ' );
echo $ dom . "n" ; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>Ekstrak isi dari HTML
$ html = file_get_contents ( ' http://www.google.com/ ' );
// Dump correctly formatted contents without tags from HTML
echo CDom:: fromString ( $ html )-> text () . "n" ;Gunakan CDOM untuk bekerja dengan bbcode sederhana
$ bbMarkup = <<<'TXT'
[quote]
[b]Bold [u]Underline[/u][/b]
[i]Italic
[/quote]
[img width=12 height=16]url[/img]
TXT;
CDom:: $ bracketOpen = ' [ ' ;
CDom:: $ bracketClose = ' ] ' ;
CDom:: $ blockTags = array ( ' quote ' => true );
CDom:: $ inlineTags = array ( ' b ' => true , ' i ' => true , ' u ' => true );
CDom:: $ selfClosingTags = array ();
// Create DOM from string
$ dom = CDom:: fromString ( $ bbMarkup );
// Find [b]
$ b = $ dom -> find ( ' b ' );
$ expected = ' [b]Bold [u]Underline[/u][/b] ' ;
echo $ b -> outerHtml () . "n" ; // Output: [b]Bold [u]Underline[/u][/b]
// Change [img] width
$ img = $ dom -> lastChild ;
$ img -> width = 450 ;
echo $ img -> outerHtml () . "n" ; // Output: [img width="450" height="16"]url[/img]
// Convert [b] to html
CDom:: $ bracketOpen = ' < ' ;
CDom:: $ bracketClose = ' > ' ;
echo $ b -> outerHtml () . "n" ; // Output: <b>Bold <u>Underline</u></b>