我有以下代码用于解析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项。
但不知道如何完成最后一部分。有人可以帮忙吗?
答案 0 :(得分:0)
我会对其进行str_replace()
:
$myList = str_replace(array('<li class="myLi">','<ul>','</ul>'), "", $StringYouHaveAlready);
您的字符串中只剩下您的项目和</li>
。
然后,你可以在</li>
:
$myListArray = explode($myList, "</li>");
然后你应该按照你的要求留下阵列。