使用 PHP DOMDocument 在众多文档中搜索一个 class

Using PHP DOMDocument to search for one class among many

我的 DOM 中有一些元素有多个 class,其中之一是 .dictionary_entry。我需要在我的 DOM 中查找此 class 的任何实例,为此我使用以下 PHP 代码:

$divs = $dom->getElementsByTagName('div');
$check = 0;
for ($i = 0; $i < $divs->length; $i++) {
    $node = $divs->item($i);
    if ($node->getAttribute('class') == 'cross-entry') { $check = 1; }
}

但是,这不起作用,因为所讨论的 div 还有其他 class,例如 <div class="cross-entry cross-one one-more-class">

有什么解决方法吗?

  1. 检查字符串中的空格。
  2. 如果存在,则在 whitespace 上展开 classes。
  3. 检查数组中是否有你想要的class
  4. 否则,检查存在的单个class是否匹配
  5. 否则,将 $check 设置为 0。

看起来像这样:

$class = $node->getAttribute('class');
$is_whitespace = preg_match('/\s/', $class);
if($is_whitespace){
    $classes = explode(' ', $class);
    if(in_array('cross-entry', $classes)){
        $check = 1;
    }
} elseif($class == 'cross-entry'){
    $check = 1;
} else {
    $check = 0;
}