Php 使用简单的HTMLDOM收集http等价物

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

我正在使用简单的HTMLDOM解析提交的html文档中的不同元素。我一直在试图找出如何检查以下内容

<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等价物,则未定义索引
警告