Estrarre DOCTYPE con simple_html_dom
-
21-09-2019 - |
Domanda
simple_html_dom
per analizzare un sito web.
C'è un modo per estrarre il doctype?
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