استخراج 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