Domanda

simple_html_dom per analizzare un sito web. C'è un modo per estrarre il doctype?

È stato utile?

Soluzione

È possibile utilizzare la funzione file_get_contents per ottenere tutti i dati dal sito web HTML. Ad esempio

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

Altri suggerimenti

È possibile utilizzare $html->find('unknown'). Questo funziona - almeno - nella versione 1.11 della libreria simplehtmldom. Io lo uso come segue:

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

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

    return NULL;
}

Questo è solo per gestire eventuali altri elementi 'non noti' che potrebbero essere trovati; Sto assumendo il primo sarà il doctype. È possibile controllare in modo esplicito ->innertext se si vuole garantire la si comincia con '!DOCTYPE ', però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top