L'UKRAINE A BESOIN DE VOTRE AIDE MAINTENANT !
Le 24 février 2022, le président russe Vladimir Poutine a ordonné l’invasion de l’Ukraine par les forces armées russes.
Votre soutien est nécessaire de toute urgence.
- Faites un don aux bénévoles. Voici le fonds de volontaires aidant l'armée ukrainienne à fournir tout l'équipement nécessaire : https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi- armiyi ou https://savelife.in.ua/en/donate/
- Vérifiez trois fois vos sources de médias sociaux. La désinformation russe tente de dissimuler et de déformer la réalité ukrainienne.
- Aidez les réfugiés ukrainiens qui fuient les attaques et les bombardements russes : https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/
- Faites pression sur vos représentants politiques pour qu’ils apportent leur aide à l’Ukraine.
- Croyez au peuple ukrainien, il ne se rendra pas, il n’a pas d’autre Ukraine.
MERCI!
HTML5 est un analyseur et rédacteur HTML5 conforme aux normes et entièrement écrit en PHP. Il est stable et utilisé dans de nombreux sites Web de production, et compte plus de cinq millions de téléchargements.
HTML5 offre les fonctionnalités suivantes.
Installez HTML5-PHP à l'aide de composer.
En ajoutant la dépendance masterminds/html5
à votre fichier composer.json
:
{
"require" : {
"masterminds/html5" : " ^2.0 "
},
}
En appelant la commande require via l'exécutable composer :
composer require masterminds/html5
HTML5-PHP possède une API de haut niveau et une API de bas niveau.
Voici comment utiliser l'API de la bibliothèque HTML5
de haut niveau :
<?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 ' );
Le $dom
créé par l'analyseur est un objet DOMDocument
complet. Et les méthodes save()
et saveHTML()
prendront n'importe quel DOMDocument.
Il est possible de transmettre un tableau d'options de configuration lors du chargement d'un document 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 );
Les options suivantes sont prises en charge :
encode_entities
(booléen) : indique que le sérialiseur doit coder de manière agressive les caractères en tant qu'entités. Sans cela, il ne code que le strict minimum.disable_html_ns
(booléen) : empêche l'analyseur d'attribuer automatiquement l'espace de noms HTML5 au document DOM. Ceci est destiné aux outils DOM non compatibles avec les espaces de noms.target_document
(DOMDocument) : un document DOM qui sera utilisé comme destination pour les nœuds analysés.implicit_namespaces
(array) : un tableau associé d'espaces de noms qui doivent être utilisés par l'analyseur. Le nom est le préfixe de la balise, la valeur est NS URI. Cette bibliothèque fournit les API de bas niveau suivantes que vous pouvez utiliser pour créer des outils HTML5 plus personnalisés :
Les tests unitaires mettent en pratique chaque élément de l'API et chaque fonction publique est bien documentée.
L'analyseur est conçu comme suit :
Scanner
gère l'analyse pour le compte de l'analyseur.Tokenizer
demande des données au scanner, les analyse, les classe et les envoie à un EventHandler
. C'est un analyseur de descente récursif.EventHandler
reçoit des notifications et des données pour chaque événement sémantique spécifique qui se produit lors de la tokenisation.DOMBuilder
est un EventHandler
qui écoute les événements de tokenisation et crée une arborescence de documents ( DOMDocument
) basée sur les événements. Le sérialiseur prend une structure de données (le DOMDocument
) et la transforme en une représentation de caractères : un document HTML5.
Le sérialiseur est divisé en trois parties :
OutputRules
contiennent les règles permettant de transformer les éléments DOM en chaînes. Les règles sont une implémentation de l'interface RulesInterface
permettant d'utiliser différents ensembles de règles.Traverser
, qui est un marcheur d'arbres à usage spécial. Il visite chaque nœud de l'arborescence et utilise les OutputRules
pour transformer le nœud en chaîne.HTML5
gère le Traverser
et stocke les données résultantes au bon endroit. Le sérialiseur ( save()
, saveHTML()
) suit la section 8.9 de la spécification HTML 5.0. Les balises sont donc sérialisées selon ces règles :
Veuillez consulter la file d'attente des problèmes pour obtenir une liste complète, mais les problèmes suivants sont des problèmes connus qui ne figurent pas actuellement sur la feuille de route :
:
n'a pas de signification particulière. Par défaut, l'analyseur ne prend pas en charge les espaces de noms de style XML via :
; pour activer les espaces de noms XML, consultez la section Espaces de noms XML Pour utiliser des espaces de noms de style XML, vous devez bien configurer l'instance HTML5
principale.
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
Vous pouvez également ajouter des préfixes par défaut qui ne nécessiteront pas la déclaration de l'espace de noms, mais ses éléments seront placés dans un espace de noms.
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
Les contributeurs dévoués (et patients) des patchs petits et grands, qui ont déjà amélioré cette bibliothèque. Voir le fichier CRÉDITS pour la liste des contributeurs.
Nous avons une immense dette de gratitude envers les auteurs originaux de html5lib.
Bien qu'il ne reste pas grand-chose de l'analyseur original, nous avons beaucoup appris en lisant la bibliothèque html5lib. Et quelques morceaux restent ici. En particulier, une grande partie de la gestion UTF-8 et Unicode est dérivée du projet html5lib.
Ce logiciel est publié sous licence MIT. La bibliothèque html5lib originale a également été publiée sous licence MIT.
Voir LICENSE.txt
Certains fichiers contiennent des déclarations de droits d'auteur émanant de personnes spécifiques impliquées dans html5lib. Ceux-ci ont été retenus le cas échéant.