PHP 8.5.0 Alpha 2 available for testing

Dom\HTMLDocument::createFromString

(PHP 8 >= 8.4.0)

Dom\HTMLDocument::createFromStringAnaliza un documento HTML a partir de un string

Descripción

public static Dom\HTMLDocument::createFromString(string $source, int $options = 0, ?string $overrideEncoding = null): Dom\HTMLDocument

Analiza un documento HTML a partir de un string, según la norma vigente.

Parámetros

source
El string que contiene el HTML a analizar.
options

Operación de 'OR' lógica de las constantes de opción libxml.

También es posible pasar Dom\HTML_NO_DEFAULT_NS para desactivar el uso del espacio de nombres HTML y del elemento template. Esto solo debería ser utilizado si las implicaciones son correctamente comprendidas.
overrideEncoding
El codificado en el cual el documento fue creado. Si no se proporciona, intentará determinar el codificado más probable utilizado.

Valores devueltos

El documento analizado en forma de una instancia de Dom\HTMLDocument.

Errores/Excepciones

  • Levanta una excepción ValueError si options contiene una opción inválida.
  • Levanta una excepción ValueError si overrideEncoding utiliza un codificado desconocido.

Ejemplos

Ejemplo #1 Ejemplo de Dom\HTMLDocument::createFromString()

Analiza un documento de ejemplo.

<?php
$dom
= Dom\HTMLDocument::createFromString(<<<'HTML'
<!DOCTYPE html>
<html>
<body>
<p>Hello, world!</p>
</body>
</html>
HTML);
echo
$dom->saveHtml();
?>

El ejemplo anterior mostrará :

<!DOCTYPE html><html><head></head><body>
    <p>Hello, world!</p>

</body></html>

Notas

Nota: Los espacios en blanco en las etiquetas html y head no son considerados significativos y pueden perder su formato.

Ver también

add a note

User Contributed Notes 1 note

up
1
kawewong at gmail dot com
5 months ago
To load HTML without doctype, html, body elements use `LIBXML_HTML_NOIMPLIED` flag.

<?php
$html
= <<<EOT
<div class="row">
<div class="col"><h1 id="heading" class="col1-heading">Hello</h1></div>
<div class="col"><p class="paragraph">Hello world.</p>
</div>
EOT;
$doc = \DOM\HTMLDocument::createFromString($html, LIBXML_HTML_NOIMPLIED);
echo
htmlspecialchars($doc->saveHTML(), ENT_QUOTES);
?>
To Top