Die UKRAINE BRAUCHT JETZT IHRE HILFE!
Am 24. Februar 2022 ordnete der russische Präsident Wladimir Putin eine Invasion der russischen Streitkräfte in der Ukraine an.
Ihre Unterstützung wird dringend benötigt.
- Spenden Sie an die Freiwilligen. Hier ist der Freiwilligenfonds, der der ukrainischen Armee bei der Bereitstellung der notwendigen Ausrüstung hilft: https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi- armiyi oder https://savelife.in.ua/en/donate/
- Überprüfen Sie die Social-Media-Quellen dreimal. Durch russische Desinformation wird versucht, die Realität in der Ukraine zu vertuschen und zu verzerren.
- Helfen Sie ukrainischen Flüchtlingen, die vor russischen Angriffen und Beschuss fliehen: https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/
- Üben Sie Druck auf Ihre politischen Vertreter aus, der Ukraine Hilfe zu leisten.
- Glauben Sie an das ukrainische Volk, es wird nicht kapitulieren, es gibt keine andere Ukraine.
DANKE SCHÖN!
HTML5 ist ein standardkonformer HTML5-Parser und -Writer, der vollständig in PHP geschrieben ist. Es ist stabil und wird auf vielen Produktionswebsites verwendet und hat weit über fünf Millionen Downloads.
HTML5 bietet die folgenden Funktionen.
Installieren Sie HTML5-PHP mit Composer.
Durch Hinzufügen der Abhängigkeit masterminds/html5
zu Ihrer Datei composer.json
:
{
"require" : {
"masterminds/html5" : " ^2.0 "
},
}
Durch Aufrufen des Befehls require über die ausführbare Composer-Datei:
composer require masterminds/html5
HTML5-PHP verfügt über eine High-Level-API und eine Low-Level-API.
So verwenden Sie die High-Level HTML5
Bibliotheks-API:
<?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 ' );
Das vom Parser erstellte $dom
ist ein vollständiges DOMDocument
Objekt. Und die Methoden save()
und saveHTML()
akzeptieren jedes DOMDocument.
Es ist möglich, beim Laden eines HTML5-Dokuments eine Reihe von Konfigurationsoptionen zu übergeben.
// 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 );
Die folgenden Optionen werden unterstützt:
encode_entities
(boolean): Gibt an, dass der Serializer Zeichen aggressiv als Entitäten codieren soll. Ohne dies wird nur das Nötigste codiert.disable_html_ns
(boolean): Verhindert, dass der Parser dem DOM-Dokument automatisch den HTML5-Namespace zuweist. Dies gilt für nicht Namespace-fähige DOM-Tools.target_document
(DOMDocument): Ein DOM-Dokument, das als Ziel für die analysierten Knoten verwendet wird.implicit_namespaces
(array): Ein Assoc-Array von Namespaces, die vom Parser verwendet werden sollen. Der Name ist das Tag-Präfix, der Wert ist der NS-URI. Diese Bibliothek stellt die folgenden Low-Level-APIs bereit, mit denen Sie individuellere HTML5-Tools erstellen können:
Die Unit-Tests testen jeden Teil der API und jede öffentliche Funktion ist gut dokumentiert.
Der Parser ist wie folgt aufgebaut:
Scanner
übernimmt das Scannen im Auftrag des Parsers.Tokenizer
fordert Daten vom Scanner an, analysiert sie, klassifiziert sie und sendet sie an einen EventHandler
. Es handelt sich um einen rekursiven Abstiegsparser.EventHandler
empfängt Benachrichtigungen und Daten für jedes spezifische semantische Ereignis, das während der Tokenisierung auftritt.DOMBuilder
ist ein EventHandler
, der auf Tokenisierungsereignisse wartet und basierend auf den Ereignissen einen Dokumentbaum ( DOMDocument
) erstellt. Der Serialisierer nimmt eine Datenstruktur (das DOMDocument
) und wandelt sie in eine Zeichendarstellung um – ein HTML5-Dokument.
Der Serializer ist in drei Teile unterteilt:
OutputRules
enthalten die Regeln zum Umwandeln von DOM-Elementen in Strings. Die Regeln sind eine Implementierung der Schnittstelle RulesInterface
die die Verwendung verschiedener Regelsätze ermöglicht.Traverser
, ein spezieller Baumwanderer. Es besucht jeden Knoten im Baum und verwendet die OutputRules
um den Knoten in eine Zeichenfolge umzuwandeln.HTML5
verwaltet den Traverser
und speichert die resultierenden Daten an der richtigen Stelle. Der Serializer ( save()
, saveHTML()
) folgt Abschnitt 8.9 der HTML 5.0-Spezifikation. Tags werden also nach diesen Regeln serialisiert:
Eine vollständige Liste finden Sie in der Problemwarteschlange. Im Folgenden sind jedoch bekannte Probleme aufgeführt, die derzeit nicht auf der Roadmap stehen:
:
hat keine besondere Bedeutung. Standardmäßig unterstützt der Parser keine Namespaces im XML-Stil über :
; Informationen zum Aktivieren der XML-Namespaces finden Sie im Abschnitt XML-Namespaces Um Namespaces im XML-Stil verwenden zu können, müssen Sie die Haupt- HTML5
Instanz gut konfigurieren.
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
Sie können auch einige Standardpräfixe hinzufügen, die keine Namespace-Deklaration erfordern, deren Elemente jedoch einen Namespace haben.
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
Die engagierten (und geduldigen) Mitwirkenden kleiner und großer Patches, die diese Bibliothek bereits verbessert haben. Eine Liste der Mitwirkenden finden Sie in der CREDITS-Datei.
Wir sind den ursprünglichen Autoren von html5lib zu großem Dank verpflichtet.
Obwohl vom ursprünglichen Parser nicht mehr viel übrig ist, haben wir durch das Lesen der html5lib-Bibliothek viel gelernt. Und einige Stücke bleiben hier. Insbesondere ist ein Großteil der UTF-8- und Unicode-Verarbeitung vom html5lib-Projekt abgeleitet.
Diese Software wird unter der MIT-Lizenz veröffentlicht. Die ursprüngliche html5lib-Bibliothek wurde ebenfalls unter der MIT-Lizenz veröffentlicht.
Siehe LICENSE.txt
Bestimmte Dateien enthalten Urheberrechtsvermerke bestimmter Personen, die an html5lib beteiligt sind. Diese wurden gegebenenfalls beibehalten.