PHP迭代通过li List&对于每个项目将值放入数组中

时间:2018-04-18 12:43:51

标签: php html arrays

我有以下代码用于解析HTML代码并且只保留UL和LI标记:<​​/ p>

function strip_tags_content($text, $tags = '', $invert = FALSE) 
{ 

    preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
    $tags = array_unique($tags[1]); 

    if(is_array($tags) AND count($tags) > 0) 
    { 
        if($invert == FALSE) 
        { 
            return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text); 
        } 
        else 
        { 
            return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
        } 
    } 
    elseif($invert == FALSE) 
    { 
        return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
    } 
    return $text; 
}

echo strip_tags_content($html, "<ul><li>");

这完全正常,我得到以下回报:

<ul><li class="myLi">Item 1</li><li class="myLi">Item 2</li><li class="myLi">Item 3</li></ul>

接下来我要做的是分配一个变量:

$myList = strip_tags_content($html, "<ul><li>");

然后对于每个li值,将该li标签中的内容推送到数组中,这样我就完成了一个包含3个项目的数组:第1项,第2项和第3项。

但不知道如何完成最后一部分。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我会对其进行str_replace()

$myList = str_replace(array('<li class="myLi">','<ul>','</ul>'), "",  $StringYouHaveAlready);

您的字符串中只剩下您的项目和</li>

然后,你可以在</li>

上爆炸
$myListArray = explode($myList, "</li>");

然后你应该按照你的要求留下阵列。