PHP -计数li元素在ul


PHP - count li elements inside ul

我正在寻找一种方法来计算动态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

的搜索