simple_html_dom.php中的CSS类问题


CSS class issue in simple_html_dom.php

我有多个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"

区别在于类中的类型名称,如BEAUTYSERVICES。我怎么能得到它在简单的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')