我尝试了find('meta[http-equiv="Content-type"]')
,但未能检索到该信息。
答案 0 :(得分:3)
SimpleHTMLDom在选择器中不使用带引号的字符串文字。它只是elem[attr=value]
。 值的比较似乎区分大小写(可能有一种方法可以使它不区分大小写,但我不知道)*
E.g。
require 'simple_html_dom.php';
$html = file_get_html('http://www.google.com/');
// most likely one one element but foreach doesn't hurt
foreach( $html->find('meta[http-equiv=content-type]') as $ct ) {
echo $ct->content, "\n";
}
打印text/html; charset=ISO-8859-1
。
*编辑:是的,有一种方法可以执行不区分大小写的匹配,使用*=
代替=
find('meta[http-equiv*=content-type]')
edit2:顺便说一下http-equiv*=content-type
thingy也匹配<meta http-equiv="haha-no-content-types"...
(它只测试字符串是否在属性值的某处)。但它是我能找到的唯一不区分大小写的函数/运算符。我想在这种情况下你可以忍受它;-)
编辑3:它使用preg_match('... / i'),模式/选择器直接传递给该函数。因此,可以执行http-equiv*=^content-type$
之类的操作,以匹配http-equiv="Content-type"
,但不匹配http-equiv="xyzContent-typeabc"
。但我不知道这是否是一个有保证的功能。
答案 1 :(得分:0)
Content-Type通常是http响应标头的一部分 - 不在正文中。你从哪里得到xml文件?
答案 2 :(得分:0)
我会foreach
$this->find('meta');
content-type
,如果有不同的{{1}} - 我认为浏览器在这种情况下不区分大小写,而php可能是。