ยูเครนต้องการความช่วยเหลือของคุณตอนนี้!
เมื่อวันที่ 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/html5
HTML5-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 สิ่งเหล่านี้ได้รับการเก็บรักษาไว้ตามความเหมาะสม