A UCRÂNIA PRECISA DA SUA AJUDA AGORA!
Em 24 de fevereiro de 2022, o presidente russo Vladimir Putin ordenou uma invasão da Ucrânia pelas Forças Armadas russas.
Seu apoio é urgentemente necessário.
- Doe para os voluntários. Aqui está o fundo voluntário que ajuda o exército ucraniano a fornecer todo o equipamento necessário: https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi- armiyi ou https://savelife.in.ua/en/donate/
- Verifique três vezes as fontes de mídia social. A desinformação russa tenta encobrir e distorcer a realidade na Ucrânia.
- Ajude os refugiados ucranianos que fogem dos ataques e bombardeios russos: https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/
- Exerça pressão sobre os seus representantes políticos para que forneçam ajuda à Ucrânia.
- Acredite no povo ucraniano, eles não se renderão, não têm outra Ucrânia.
OBRIGADO!
HTML5 é um analisador e gravador HTML5 compatível com os padrões, escrito inteiramente em PHP. É estável e usado em muitos sites de produção e tem mais de cinco milhões de downloads.
HTML5 fornece os seguintes recursos.
Instale HTML5-PHP usando o compositor.
Adicionando a dependência masterminds/html5
ao seu arquivo composer.json
:
{
"require" : {
"masterminds/html5" : " ^2.0 "
},
}
Ao invocar o comando require via executável do compositor:
composer require masterminds/html5
HTML5-PHP possui uma API de alto nível e uma API de baixo nível.
Veja como você usa a API da biblioteca HTML5
de alto nível:
<?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 ' );
O $dom
criado pelo analisador é um objeto DOMDocument
completo. E os métodos save()
e saveHTML()
aceitarão qualquer DOMDocument.
É possível passar uma série de opções de configuração ao carregar um 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 );
As seguintes opções são suportadas:
encode_entities
(booleano): Indica que o serializador deve codificar agressivamente caracteres como entidades. Sem isso, ele codifica apenas o mínimo.disable_html_ns
(booleano): evita que o analisador atribua automaticamente o namespace HTML5 ao documento DOM. Isto é para ferramentas DOM que não reconhecem namespace.target_document
(DOMDocument): Um documento DOM que será usado como destino para os nós analisados.implicit_namespaces
(array): Uma matriz associada de namespaces que deve ser usada pelo analisador. O nome é o prefixo da tag, o valor é NS URI. Esta biblioteca fornece as seguintes APIs de baixo nível que você pode usar para criar ferramentas HTML5 mais personalizadas:
Os testes unitários exercitam cada parte da API e cada função pública é bem documentada.
O analisador é projetado da seguinte forma:
Scanner
lida com a digitalização em nome do analisador.Tokenizer
solicita dados do scanner, analisa-os, classifica-os e envia-os para um EventHandler
. É um analisador descendente recursivo.EventHandler
recebe notificações e dados para cada evento semântico específico que ocorre durante a tokenização.DOMBuilder
é um EventHandler
que escuta eventos de tokenização e constrói uma árvore de documentos ( DOMDocument
) com base nos eventos. O serializador pega uma estrutura de dados (o DOMDocument
) e a transforma em uma representação de caractere – um documento HTML5.
O serializador é dividido em três partes:
OutputRules
contêm as regras para transformar elementos DOM em strings. As regras são uma implementação da interface RulesInterface
permitindo o uso de diferentes conjuntos de regras.Traverser
, que é um caminhante de árvores para fins especiais. Ele visita cada nó na árvore e usa OutputRules
para transformar o nó em uma string.HTML5
gerencia o Traverser
e armazena os dados resultantes no local correto. O serializador ( save()
, saveHTML()
) segue a seção 8.9 da especificação HTML 5.0. Portanto, as tags são serializadas de acordo com estas regras:
Verifique a fila de problemas para obter uma lista completa, mas a seguir estão os problemas conhecidos que não estão atualmente no roteiro:
:
não tem significado especial. Por padrão, o analisador não suporta namespaces de estilo XML via :
; para ativar os namespaces XML, consulte a seção Namespaces XML Para usar namespaces de estilo XML você precisa configurar bem a instância 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
Você também pode adicionar alguns prefixos padrão que não exigirão a declaração de namespace, mas seus elementos terão namespace.
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
Os contribuidores dedicados (e pacientes) de patches pequenos e grandes, que já melhoraram esta biblioteca. Consulte o arquivo CREDITS para obter uma lista de contribuidores.
Temos uma enorme dívida de gratidão com os autores originais do html5lib.
Embora não reste muito do analisador original, aprendemos muito lendo a biblioteca html5lib. E algumas peças permanecem aqui. Em particular, grande parte do tratamento de UTF-8 e Unicode é derivado do projeto html5lib.
Este software é lançado sob a licença do MIT. A biblioteca html5lib original também foi lançada sob a licença do MIT.
Consulte LICENSE.txt
Certos arquivos contêm declarações de direitos autorais de indivíduos específicos envolvidos com html5lib. Esses foram mantidos quando apropriado.