Pergunta

estou usando simple_html_dom Para analisar um site. Existe uma maneira de extrair o doctype?

Foi útil?

Solução

Você pode usar file_get_contents Função para obter todos os dados HTML do site. Por exemplo

<?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];
?>

Outras dicas

Você pode usar $html->find('unknown'). Isso funciona - pelo menos - na versão 1.11 da biblioteca simpleshtmldom. Eu o uso da seguinte maneira:

function get_doctype($doc)
{
    $els = $doc->find('unknown');

    foreach ($els as $e => $el) 
        if ($el->parent()->tag == 'root') 
            return $el;

    return NULL;
}

Isso é apenas para lidar com outros elementos 'desconhecidos' que possam ser encontrados; Estou assumindo que o primeiro será o doctype. Você pode inspecionar explicitamente ->innertext Se você quiser garantir que ele comece com '!DOCTYPE ', no entanto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top