¡UCRANIA NECESITA TU AYUDA AHORA!
El 24 de febrero de 2022, el presidente ruso Vladimir Putin ordenó una invasión de Ucrania por parte de las Fuerzas Armadas rusas.
Se necesita urgentemente su apoyo.
- Donar a los voluntarios. Aquí está el fondo de voluntariado que ayuda al ejército ucraniano a proporcionar todo el equipo necesario: https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi- armiyi o https://savelife.in.ua/en/donate/
- Verifique tres veces las fuentes de las redes sociales. La desinformación rusa intenta encubrir y distorsionar la realidad en Ucrania.
- Ayude a los refugiados ucranianos que huyen de los ataques y bombardeos rusos: https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/
- Presiona a tus representantes políticos para que brinden ayuda a Ucrania.
- Cree en el pueblo ucraniano, no se rendirá, no tienen otra Ucrania.
¡GRACIAS!
HTML5 es un analizador y escritor de HTML5 compatible con los estándares escrito íntegramente en PHP. Es estable y se utiliza en muchos sitios web de producción y tiene más de cinco millones de descargas.
HTML5 proporciona las siguientes características.
Instale HTML5-PHP usando Composer.
Al agregar la dependencia masterminds/html5
a su archivo composer.json
:
{
"require" : {
"masterminds/html5" : " ^2.0 "
},
}
Al invocar el comando require a través del ejecutable del compositor:
composer require masterminds/html5
HTML5-PHP tiene una API de alto nivel y una API de bajo nivel.
Así es como se utiliza la API de la biblioteca HTML5
de alto nivel:
<?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 ' );
El $dom
creado por el analizador es un objeto DOMDocument
completo. Y los métodos save()
y saveHTML()
aceptarán cualquier DOMDocument.
Es posible pasar una variedad de opciones de configuración al cargar un documento 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 );
Se admiten las siguientes opciones:
encode_entities
(booleano): indica que el serializador debe codificar agresivamente caracteres como entidades. Sin esto, sólo codifica lo mínimo.disable_html_ns
(booleano): evita que el analizador asigne automáticamente el espacio de nombres HTML5 al documento DOM. Esto es para herramientas DOM que no reconocen espacios de nombres.target_document
(DOMDocument): un documento DOM que se utilizará como destino para los nodos analizados.implicit_namespaces
(matriz): una matriz asociada de espacios de nombres que debe utilizar el analizador. El nombre es el prefijo de la etiqueta, el valor es NS URI. Esta biblioteca proporciona las siguientes API de bajo nivel que puede utilizar para crear herramientas HTML5 más personalizadas:
Las pruebas unitarias ejercitan cada parte de la API y cada función pública está bien documentada.
El analizador está diseñado de la siguiente manera:
Scanner
maneja el escaneo en nombre del analizador.Tokenizer
solicita datos del escáner, los analiza, los clasifica y los envía a un EventHandler
. Es un analizador de descenso recursivo.EventHandler
recibe notificaciones y datos para cada evento semántico específico que ocurre durante la tokenización.DOMBuilder
es un EventHandler
que escucha eventos de tokenización y crea un árbol de documentos ( DOMDocument
) basado en los eventos. El serializador toma una estructura de datos ( DOMDocument
) y la transforma en una representación de caracteres: un documento HTML5.
El serializador se divide en tres partes:
OutputRules
contiene las reglas para convertir elementos DOM en cadenas. Las reglas son una implementación de la interfaz RulesInterface
que permite utilizar diferentes conjuntos de reglas.Traverser
, que es un caminante de árboles de propósito especial. Visita cada nodo del árbol y utiliza OutputRules
para transformar el nodo en una cadena.HTML5
gestiona Traverser
y almacena los datos resultantes en el lugar correcto. El serializador ( save()
, saveHTML()
) sigue la sección 8.9 de la especificación HTML 5.0. Entonces las etiquetas se serializan de acuerdo con estas reglas:
Consulte la cola de problemas para obtener una lista completa, pero los siguientes son problemas conocidos que no están actualmente en la hoja de ruta:
:
no tiene ningún significado especial. De forma predeterminada, el analizador no admite espacios de nombres de estilo XML mediante :
; para habilitar los espacios de nombres XML, consulte la sección Espacios de nombres XML Para utilizar espacios de nombres de estilo XML hay que configurar bien la instancia principal 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
También puede agregar algunos prefijos predeterminados que no requerirán la declaración del espacio de nombres, pero sus elementos sí tendrán espacios de nombres.
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
Los dedicados (y pacientes) contribuyentes de parches pequeños y grandes, que ya han mejorado esta biblioteca. Consulte el archivo CRÉDITOS para obtener una lista de contribuyentes.
Tenemos una enorme deuda de gratitud con los autores originales de html5lib.
Si bien no queda mucho del analizador original, aprendimos mucho leyendo la biblioteca html5lib. Y algunas piezas quedan aquí. En particular, gran parte del manejo de UTF-8 y Unicode se deriva del proyecto html5lib.
Este software se publica bajo la licencia MIT. La biblioteca html5lib original también se lanzó bajo la licencia MIT.
Ver LICENCIA.txt
Ciertos archivos contienen afirmaciones de derechos de autor de personas específicas involucradas con html5lib. Se han conservado cuando correspondía.