Php 使用简单的HTMLDOM收集http等价物
我正在使用简单的HTMLDOM解析提交的html文档中的不同元素。我一直在试图找出如何检查以下内容Php 使用简单的HTMLDOM收集http等价物,php,simple-html-dom,Php,Simple Html Dom,我正在使用简单的HTMLDOM解析提交的html文档中的不同元素。我一直在试图找出如何检查以下内容 <meta http-equiv="refresh" content="100"> 我收到了未定义常量等价物的错误使用。是否有特殊的方式由于-symbol而形成语句?它应该是$element->attr foreach ( $html->find('meta') as $element ) { var_dump($element->attr); } 输出 arr
<meta http-equiv="refresh" content="100">
我收到了未定义常量等价物的错误使用。是否有特殊的方式由于-symbol而形成语句?它应该是
$element->attr
foreach ( $html->find('meta') as $element ) {
var_dump($element->attr);
}
输出
array
'http-equiv' => string 'refresh' (length=7)
'content' => string '100' (length=3)
array
'http-equiv' => string 'Content-Type' (length=12)
'content' => string 'text/html; charset=utf-8' (length=24)
array
'name' => string 'robots' (length=6)
'content' => string 'noindex' (length=7)
FOUND
简单检查
foreach ( $html->find('meta') as $element ) {
foreach ( $element->attr as $key => $value ) {
if ($key == "http-equiv" && $value == 'refresh') {
echo "FOUND";
}
}
}
输出
array
'http-equiv' => string 'refresh' (length=7)
'content' => string '100' (length=3)
array
'http-equiv' => string 'Content-Type' (length=12)
'content' => string 'text/html; charset=utf-8' (length=24)
array
'name' => string 'robots' (length=6)
'content' => string 'noindex' (length=7)
FOUND
注*
如果直接使用$element->attr[“http equiv”]
,则会产生以下错误,因为站点有时没有http equiv
注意:未定义索引:http等价
您正在进行减法运算:
$element->http减法等于
为什么不直接找到http equiv attribute包含“refresh”的元元素呢
在示例页面中,应该可以这样做:$html->find('div[id=hello]',0)->innertext='foo'代码>
让我觉得$html->find('meta[http equiv=refresh])
也应该找到包含“refresh”内容的http等价元素。试试这个
if(@$element->attr['http-equiv'] == 'refresh') {
refreshFound();
}
其中@
静音注意:如果文档不包含meta:http等价物,则未定义索引
警告