Извлеките doctype с помощью simple_html_dom
-
21-09-2019 - |
Вопрос
Я использую simple_html_dom
для синтаксического анализа веб-сайта.Есть ли способ извлечь doctype?
Решение
Вы можете использовать file_get_contents
функция для получения всех HTML-данных с веб-сайта.Например
<?php
$html = file_get_contents("http://google.com");
$html = str_replace("\n","",$html);
$get_doctype = preg_match_all("/(<!DOCTYPE.+\">)<html/i",$html,$matches);
$doctype = $matches[1][0];
?>
Другие советы
Вы можете использовать $html->find('unknown')
.Это работает - по крайней мере - в версии 1.11 библиотеки simplehtmldom.Я использую его следующим образом:
function get_doctype($doc)
{
$els = $doc->find('unknown');
foreach ($els as $e => $el)
if ($el->parent()->tag == 'root')
return $el;
return NULL;
}
Это просто для обработки любых других "неизвестных" элементов, которые могут быть найдены;Я предполагаю, что первым будет doctype .Вы можете явно проверить ->innertext
если вы хотите убедиться, что это начинается с '!DOCTYPE '
, хотя.
Не связан с StackOverflow