使用 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">
有什么解决方法吗?
- 检查字符串中的空格。
- 如果存在,则在
whitespace
上展开 classes。
- 检查数组中是否有你想要的class
- 否则,检查存在的单个class是否匹配
- 否则,将
$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;
}
我的 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">
有什么解决方法吗?
- 检查字符串中的空格。
- 如果存在,则在
whitespace
上展开 classes。 - 检查数组中是否有你想要的class
- 否则,检查存在的单个class是否匹配
- 否则,将
$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;
}