سؤال

انا استخدم 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