ยูเครนต้องการความช่วยเหลือของคุณตอนนี้!
เมื่อวันที่ 24 กุมภาพันธ์ พ.ศ. 2565 ประธานาธิบดีรัสเซีย วลาดิมีร์ ปูติน สั่งบุกยูเครนโดยกองทัพรัสเซีย
การสนับสนุนของคุณมีความจำเป็นเร่งด่วน
- บริจาคให้กับอาสาสมัคร นี่คือกองทุนอาสาสมัครที่ช่วยเหลือกองทัพยูเครนในการจัดหาอุปกรณ์ที่จำเป็นทั้งหมด: https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi- armiyi หรือ https://savelife.in.ua/en/donate/
- ตรวจสอบแหล่งที่มาของโซเชียลมีเดียสามครั้ง ข้อมูลบิดเบือนของรัสเซียกำลังพยายามปกปิดและบิดเบือนความเป็นจริงในยูเครน
- ช่วยเหลือผู้ลี้ภัยชาวยูเครนที่กำลังหลบหนีการโจมตีและเปลือกหอยของรัสเซีย: https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/
- กดดันตัวแทนทางการเมืองของคุณเพื่อให้ความช่วยเหลือแก่ยูเครน
- เชื่อในตัวชาวยูเครน พวกเขาจะไม่ยอมแพ้ พวกเขาไม่มียูเครนอีกต่อไป
ขอบคุณ!
HTML5 เป็นตัวแยกวิเคราะห์และตัวเขียน HTML5 ที่ได้มาตรฐานซึ่งเขียนด้วย PHP ทั้งหมด มีความเสถียรและใช้งานในเว็บไซต์ที่ใช้งานจริงหลายแห่ง และมีการดาวน์โหลดมากกว่าห้าล้านครั้ง
HTML5 มีคุณสมบัติดังต่อไปนี้
ติดตั้ง HTML5-PHP โดยใช้ผู้แต่ง
โดยการเพิ่มการพึ่งพา masterminds/html5 ให้กับไฟล์ composer.json ของคุณ:
{
"require" : {
"masterminds/html5" : " ^2.0 "
},
}โดยการเรียกใช้คำสั่ง need ผ่านทางผู้แต่ง:
composer require masterminds/html5HTML5-PHP มี API ระดับสูงและ API ระดับต่ำ
นี่คือวิธีที่คุณใช้ API ไลบรารี HTML5 ระดับสูง:
<?php
// Assuming you installed from Composer:
require " vendor/autoload.php " ;
use Masterminds HTML5 ;
// An example HTML document:
$ html = <<< 'HERE'
<html>
<head>
<title>TEST</title>
</head>
<body id='foo'>
<h1>Hello World</h1>
<p>This is a test of the HTML5 parser.</p>
</body>
</html>
HERE;
// Parse the document. $dom is a DOMDocument.
$ html5 = new HTML5 ();
$ dom = $ html5 -> loadHTML ( $ html );
// Render it as HTML5:
print $ html5 -> saveHTML ( $ dom );
// Or save it to a file:
$ html5 -> save ( $ dom , ' out.html ' ); $dom ที่สร้างโดย parser เป็นวัตถุ DOMDocument แบบเต็ม และเมธอด save() และ saveHTML() จะใช้ DOMDocument ใดๆ
เป็นไปได้ที่จะส่งผ่านตัวเลือกการกำหนดค่าต่างๆ มากมายเมื่อโหลดเอกสาร HTML5
// An associative array of options
$ options = array (
' option_name ' => ' option_value ' ,
);
// Provide the options to the constructor
$ html5 = new HTML5 ( $ options );
$ dom = $ html5 -> loadHTML ( $ html );รองรับตัวเลือกต่อไปนี้:
encode_entities (บูลีน): บ่งชี้ว่าซีเรียลไลเซอร์ควรเข้ารหัสอักขระเป็นเอนทิตีอย่างจริงจัง หากไม่มีสิ่งนี้ ระบบจะเข้ารหัสเฉพาะค่าขั้นต่ำเปล่าเท่านั้นdisable_html_ns (บูลีน): ป้องกันไม่ให้ parser กำหนดเนมสเปซ HTML5 ให้กับเอกสาร DOM โดยอัตโนมัติ นี่เป็นเครื่องมือ DOM ที่ไม่ใช่เนมสเปซtarget_document (DOMDocument): เอกสาร DOM ที่จะใช้เป็นปลายทางสำหรับโหนดที่แยกวิเคราะห์implicit_namespaces (อาร์เรย์): อาร์เรย์ assoc ของเนมสเปซที่ parser ควรใช้ ชื่อเป็นคำนำหน้าแท็ก ค่าคือ NS URI ไลบรารีนี้มี API ระดับต่ำต่อไปนี้ที่คุณสามารถใช้เพื่อสร้างเครื่องมือ HTML5 ที่ปรับแต่งเพิ่มเติมได้:
หน่วยทดสอบใช้แต่ละส่วนของ API และทุกฟังก์ชันสาธารณะได้รับการบันทึกไว้อย่างดี
ตัวแยกวิเคราะห์ได้รับการออกแบบดังนี้:
Scanner จะจัดการการสแกนในนามของตัวแยกวิเคราะห์Tokenizer ร้องขอข้อมูลออกจากเครื่องสแกน แยกวิเคราะห์ แยกประเภท และส่งไปยัง EventHandler มันเป็น parser โคตรแบบเรียกซ้ำEventHandler ได้รับการแจ้งเตือนและข้อมูลสำหรับแต่ละเหตุการณ์ทางความหมายเฉพาะที่เกิดขึ้นระหว่างโทเค็นDOMBuilder เป็น EventHandler ที่คอยรับฟังเหตุการณ์โทเค็นและสร้างแผนผังเอกสาร ( DOMDocument ) ตามเหตุการณ์ ตัวซีเรียลไลเซอร์ใช้โครงสร้างข้อมูล ( DOMDocument ) และแปลงเป็นการแสดงอักขระ - เอกสาร HTML5
ซีเรียลไลเซอร์แบ่งออกเป็นสามส่วน:
OutputRules มีกฎในการเปลี่ยนองค์ประกอบ DOM ให้เป็นสตริง กฎเป็นการนำอินเทอร์เฟซ RulesInterface ไปใช้เพื่อให้สามารถใช้ชุดกฎที่แตกต่างกันได้Traverser ซึ่งเป็นอุปกรณ์ช่วยเดินบนต้นไม้โดยเฉพาะ จะเยี่ยมชมแต่ละโหนดโหนดในแผนผังและใช้ OutputRules เพื่อแปลงโหนดให้เป็นสตริงHTML5 จัดการ Traverser และจัดเก็บข้อมูลผลลัพธ์ในตำแหน่งที่ถูกต้อง ตัวซีเรียลไลเซอร์ ( save() , saveHTML() ) เป็นไปตามมาตรา 8.9 ของข้อกำหนด HTML 5.0 ดังนั้นแท็กจะถูกทำให้เป็นอนุกรมตามกฎเหล่านี้:
โปรดตรวจสอบคิวปัญหาเพื่อดูรายการทั้งหมด แต่ต่อไปนี้เป็นปัญหาที่ทราบซึ่งไม่ได้อยู่ในแผนการทำงานในปัจจุบัน:
: ไม่มีความหมายพิเศษ โดยค่าเริ่มต้น parser ไม่สนับสนุนเนมสเปซสไตล์ XML ผ่าน : ; เพื่อเปิดใช้งานเนมสเปซ XML โปรดดูส่วนเนมสเปซ XML หากต้องการใช้เนมสเปซสไตล์ XML คุณต้องกำหนดค่าอินสแตนซ์ HTML5 หลักให้ดี
use Masterminds HTML5 ;
$ html = new HTML5 ( array (
" xmlNamespaces " => true
));
$ dom = $ html -> loadHTML ( ' <t:tag xmlns:t="http://www.example.com"/> ' );
$ dom -> documentElement -> namespaceURI ; // http://www.example.comคุณยังสามารถเพิ่มคำนำหน้าเริ่มต้นบางส่วนที่ไม่จำเป็นต้องมีการประกาศเนมสเปซ แต่องค์ประกอบจะถูกเนมสเปซ
use Masterminds HTML5 ;
$ html = new HTML5 ( array (
" implicitNamespaces " => array (
" t " => " http://www.example.com "
)
));
$ dom = $ html -> loadHTML ( ' <t:tag/> ' );
$ dom -> documentElement -> namespaceURI ; // http://www.example.com ผู้มีส่วนร่วมโดยเฉพาะ (และผู้ป่วย) ของแพตช์ทั้งเล็กและใหญ่ ซึ่งได้ทำให้ไลบรารีนี้ดีขึ้นแล้ว ดูไฟล์ CREDITS สำหรับรายชื่อผู้ร่วมให้ข้อมูล
เราเป็นหนี้บุญคุณมหาศาลต่อผู้เขียนต้นฉบับของ html5lib
แม้ว่า parser ดั้งเดิมจะเหลืออยู่ไม่มากนัก แต่เราได้เรียนรู้มากมายจากการอ่านไลบรารี html5lib และบางส่วนยังคงอยู่ที่นี่ โดยเฉพาะอย่างยิ่ง การจัดการ UTF-8 และ Unicode ส่วนใหญ่ได้มาจากโปรเจ็กต์ html5lib
ซอฟต์แวร์นี้เผยแพร่ภายใต้ใบอนุญาต MIT ไลบรารี html5lib ดั้งเดิมยังเผยแพร่ภายใต้ใบอนุญาต MIT
ดู LICENSE.txt
ไฟล์บางไฟล์มีการยืนยันลิขสิทธิ์โดยบุคคลที่เกี่ยวข้องกับ html5lib สิ่งเหล่านี้ได้รับการเก็บรักษาไว้ตามความเหมาะสม