PHP DomDocument返回Doctype

时间:2014-10-28 22:09:14

标签: php

我认为这比以前更容易,或者我在想这个。

我正在尝试从网址返回html网页声明的doctype。 如果它不是!DOCTYPE html追加它!DOCTYPE html。

我尝试了几种不同的东西......最新的是下面的数组返回,但无论测试的页面如何,即使完全声明的DOCTYPE不相同,返回的数组也完全相同。

对于我做错了什么或如何解决这个问题的任何想法都将非常感激。

<!DOCTYPE html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 


$url="http://www.example.com";

$html = file_get_contents($url);

$doc = new DOMDocument();
$doc->loadHTML(htmlentities($html));

$doctype = $doc->doctype;
var_dump($doctype);

var_dump返回

object(DOMDocumentType)#2 (22) { 
["name"]=> string(4) "html" 
["entities"]=> string(22) "(object value omitted)" 
["notations"]=> string(22) "(object value omitted)" 
["publicId"]=> string(37) "-//W3C//DTD HTML 4.0 Transitional//EN" 
["systemId"]=> string(41) "http://www.w3.org/TR/REC-html40/loose.dtd" 
["internalSubset"]=> NULL 
["nodeName"]=> string(4) "html" 
["nodeValue"]=> NULL 
["nodeType"]=> int(10) 
["parentNode"]=> string(22) "(object value omitted)" 
["childNodes"]=> NULL 
["firstChild"]=> NULL 
["lastChild"]=> NULL 
["previousSibling"]=> NULL 
["nextSibling"]=> string(22) "(object value omitted)" 
["attributes"]=> NULL 
["ownerDocument"]=> string(22) "(object value omitted)" 
["namespaceURI"]=> NULL 
["prefix"]=> string(0) "" 
["localName"]=> NULL 
["baseURI"]=> NULL
["textContent"]=> string(0) "" }

1 个答案:

答案 0 :(得分:2)

您无需拨打 htmlentities $html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html></html>'; $doc = new DOMDocument(); $doc->loadHTML( $html ); $doctype = $doc->doctype; var_dump( $doctype );