https://github.com/amal/cdom
CDOM เป็นส่วนประกอบ HTML/XML/BBCode DOM อย่างง่าย มันมีตัวแยกวิเคราะห์สำหรับภาษามาร์กอัปเหมือน HTML ในโครงสร้างคล้าย DOM และสนับสนุนการค้นหาผ่าน DOM ด้วยความแข็งแกร่งของตัวเลือก CSS3 และการจัดการใด ๆ CDOM ขึ้นอยู่กับตัวแยกวิเคราะห์ HTML DOM PHP อย่างง่ายและได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
คุณสมบัติหลักและความเป็นไปได้:
CDOM เขียนขึ้นสำหรับ Anizoptera CMF โดย Amal Samally (Amal.Samally ที่ gmail.com)
การใช้ CDOM นั้นง่ายมาก วิธีการส่วนใหญ่ตรงกับวิธีการของ jQuery วิธีการทั้งหมดเป็นรายละเอียดที่แสดงความคิดเห็น IDE ของคุณสามารถแสดงการเติมข้อความอัตโนมัติได้อย่างง่ายดายหากรองรับ PhpDoc และคุณสามารถดูตัวอย่างของการใช้ด้านล่าง เอกสารฉบับเต็มจะเร็ว ๆ นี้
จะรับองค์ประกอบ 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" ;
}วิธีแก้ไของค์ประกอบ 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>สารสกัดเนื้อหาจาก HTML
$ html = file_get_contents ( ' http://www.google.com/ ' );
// Dump correctly formatted contents without tags from HTML
echo CDom:: fromString ( $ html )-> text () . "n" ;ใช้ cdom เพื่อทำงานกับ bbcode ง่ายๆ
$ 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>