我正在寻找一种方法来计算动态li元素在PHP(不是js)中的ul。
例如:<ul>
<li> lorem </li>
<li> ipsum </li>
<li> dolor </li>
<li> sit </li>
</ul>
将返回数字4。(我是不是太笨了,在这里不能使用正确的代码?)
有没有办法在php中完成?
提前感谢!
编辑:这个标记是由cms系统生成的,计数应该放在列表的前面,在模板文件中
您可以在该字符串上为<li>
(或-li-
)执行一个非常简单的子字符串Count,它将返回项目的数量。
编辑:
$count = substr_count($html,'<li>'); //where $html holds your piece of HTML.
假设您没有输出此HTML(否则计算元素数量应该是微不足道的),您可以使用PHP的DOMDocument。
$dom = new DOMDocument;
$dom->loadHTML($str);
foreach($dom->getElementsByTagName('ul') as $ul) {
$count = $ul->getElementsByTagName('li')->length;
var_dump($count);
}
CodePad .
此代码将计算每个ul
元素中li
元素的数量。如果您不关心单独的ul
元素,只需使用$dom->getElementsByTagName('li')->length
。
答案就在DOMDocument。
例如:$dom = new DOMDocument();
$dom -> loadHTML("<ul><li></li><li></li></ul>");
$li = $dom->getElementsByTagName("li");
foreach ($li as $li_c){
$i++;
}
echo $i;
使用PHP的DOM库,或查找简单DOM解析器。它包含对HTML