Вопрос

Я использую 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 ', хотя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top