He intentado analizar páginas web mediante el uso del HTML DomObject para usarlas en una aplicación para escanearlas en busca de calidad SEO.Cómo evitar que PHP DomDocument "arregle" su cadena HTML
Sin embargo, me he encontrado con un problema. Para propósitos de prueba que he escrito una página html pequeña que contiene el siguiente código HTML incorrecto:
<head>
<meta name="description" content="randomdesciption">
</head>
<title>sometitle</title>
Como se puede ver el título está fuera de la etiqueta de la cabeza wich es el error que estoy tratando de detectar.
Ahora viene el problema, cuando uso curl para capturar la cadena de respuesta de esta página, la envío al documento dom para cargarla como HTML, lo arregla agregando otras etiquetas alrededor del título.
<head>
<meta name="description" content="randomdesciption">
</head>
<head><title>sometitle</title></head>
He comprobado los datos responce enrollamiento y que de hecho no es el problema, de alguna manera el DomDocument php durante la ejecución de la loadHTML() método corrige la sintaxis HTML.
También intenté desactivar DomDocument recover, replaceEntities y validateOnParse atributos configurándolos en false, sin éxito.
He estado buscando en google pero no he podido encontrar ninguna respuesta hasta el momento. Supongo que es algo raro para alguien que realmente quiere que el HTML roto no se corrija.
¿Alguien sabe cómo evitar que el DomDocument arregle mi html roto?
Gracias de antemano
¿Usted ha considerado el funcionamiento de su margen de beneficio a través [ordenado] (http://php.net/tidy) antes de pasarla a DOM, o incluso en lugar de DOM? Es una extensión útil para detectar errores de marcado. – TML
Nota: Este comportamiento es realmente como se especifica en HTML: '
' tiene una etiqueta de apertura y cierre opcional y está implícito en la presencia de un elemento de solo cabeza como '