Как запретить PHP DomDocument «исправить» вашу HTML-строку

Я пытался анализировать веб-страницы с помощью HTML DomObject, чтобы использовать их в приложении для сканирования на предмет качества SEO.

Однако у меня возникла проблема. В целях тестирования я написал небольшую html-страницу, содержащую следующий неправильный html:

<head>
<meta name="description" content="randomdesciption">
</head>
<title>sometitle</title>

Как вы можете видеть, заголовок находится вне тега заголовка, что и является ошибкой, которую я пытаюсь обнаружить.

Теперь возникает проблема: когда я использую curl для перехвата строки ответа с этой страницы, а затем отправляю ее в документ dom для загрузки в виде HTML, он фактически исправляет это, ДОБАВЛЯЯ другие теги вокруг заголовка.

<head>
<meta name="description" content="randomdesciption">
</head>
<head><title>sometitle</title></head>

Я проверил данные отклика curl, и проблема не в этом, каким-то образом php DomDocument во время выполнения метода loadHTML () исправляет синтаксис html.

Я также попытался отключить атрибуты DomDocument recovery, substituteEntities и validateOnParse, установив для них значение false, но безуспешно.

Я искал в Google, но пока не могу найти ответов. Я думаю, это редкость для тех, кто действительно хочет, чтобы сломанный HTML не исправлялся.

Кто-нибудь знает, как запретить DomDocument исправить мой сломанный HTML?

Заранее спасибо

8
задан Björn 17 January 2012 в 11:03
поделиться