PHP - 计算ul里面的li元素

时间:2011-09-13 07:03:09

标签: php html count html-lists

我正在寻找一种方法来计算php(而不是js)中ul内的动态li元素。

例如:

<ul>

  <li> lorem </li>

  <li> ipsum </li>

  <li> dolor </li>

  <li> sit </li>

</ul>

会将数字 4 返回给我。 (我在这里使用正确的代码太愚蠢了吗?)

有没有办法在php中实现这一点?

提前致谢!

编辑:

标记由cms系统生成,计数应放在列表之前,在模板文件中。

4 个答案:

答案 0 :(得分:11)

您可以对该字符串的<li>(或-li-)执行非常简单的Substring Count,它会返回项目数。


编辑:

$count = substr_count($html,'<li>'); //where $html holds your piece of HTML.

答案 1 :(得分:6)

假设您没有输出此HTML(否则计算元素数量应该是微不足道的),您可以使用PHP的DOMDocument

$dom = new DOMDocument;

$dom->loadHTML($str);

foreach($dom->getElementsByTagName('ul') as $ul) {

   $count = $ul->getElementsByTagName('li')->length;

   var_dump($count);

}

CodePad

此代码将计算每个li元素中ul个元素的数量。如果您不关心单个ul元素,请使用$dom->getElementsByTagName('li')->length

答案 2 :(得分:3)

你的回答在于DOMDocument

例如:

$dom = new DOMDocument();
$dom -> loadHTML("<ul><li></li><li></li></ul>");
$li = $dom->getElementsByTagName("li");
foreach ($li as $li_c){
$i++;
}
echo $i;

答案 3 :(得分:0)

使用PHP的DOM库,或查找Simple DOM Parser。它包含对HTML的搜索