我有多个div, class如下
<div class ="hub_categoryDeal Dubai Healthcare BEAUTY HAIR_REMOVAL1 LASER_HAIR_REMOVAL Dubai"
<div class ="hub_categoryDeal Dubai Healthcare SERVICES HAIR_REMOVAL1 LASER_HAIR_REMOVAL Dubai"
区别在于类中的类型名称,如BEAUTY
和SERVICES
。我怎么能得到它在简单的html查找()方法?
我不知道/找不到合适的数组函数,但你可以得到所有的类,然后过滤它们。这样的:
$html_string = '<div class ="hub_categoryDeal Dubai Healthcare BEAUTY HAIR_REMOVAL1 LASER_HAIR_REMOVAL Dubai"></div>"
<div class ="hub_categoryDeal Dubai Healthcare SERVICES HAIR_REMOVAL1 LASER_HAIR_REMOVAL Dubai"></div>';
$html = str_get_html($html_string);
$classes = array();
foreach ($html->find('div.hub_categoryDeal') as $element) {
// push all the values inside the container
$classes = array_merge($classes, array_filter(explode(' ', $element->class)));
}
$temp = array_count_values($classes); // check all the values
foreach($temp as $key => $count) {
if($count > 1) { // if is repeated
$found = array_keys($classes, $key); // get all the repeated thru their keys
if($found) {
foreach($found as $k) {
unset($classes[$k]); // remove them
}
}
}
}
echo '<pre>';
print_r($classes);
输出如下:
Array
(
[3] => BEAUTY
[10] => SERVICES
)
class属性中有BEAUTY的元素:
$html->find('.BEAUTY')
class属性中包含SERVICES的元素:
$html->find('.SERVICES')