【问题标题】:PHP - count li elements inside ulPHP - 计算 ul 中的 li 元素
【发布时间】:2011-09-13 07:03:09
【问题描述】:

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

例如:

<ul>

  <li> lorem </li>

  <li> ipsum </li>

  <li> dolor </li>

  <li> sit </li>

</ul>

会给我返回数字 4。 (我是不是太笨了,不能在这里使用正确的代码?)

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

提前致谢!

编辑:

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

【问题讨论】:

  • “我是不是太笨了,不能在这里使用正确的代码?” - 你确实做得很好,无视了编辑试图打在你脸上的帮助。 ;)
  • 您自己生成此 HTML 吗?它是否来自某些外部来源?
  • 你是用PHP来生成这个html表格的吗?
  • php count xml elements 的可能重复项
  • Tomalak,是的,我没看到,谢谢提醒!

标签: php html count html-lists


【解决方案1】:

你的答案在于DOMDocument

例如:

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

【讨论】:

    【解决方案2】:

    您可以在该字符串上为&lt;li&gt;(或-li-)执行一个非常简单的Substring Count,它会返回项目数。


    编辑:

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

    【讨论】:

    • 因为它非常简单,我什至建议两者都计算。 ;)
    • 感谢您的回答。你能给我举个例子吗?我不知道如何做到这一点。
    • 再次感谢!我需要使用它的标签 ID('portfolio')来识别 ul 我该怎么做?
    • 您应该从一开始就在您的问题中写下这一点。使用建议的其他解决方案并做好功课。
    • 哦,汤姆,你真是个好人。我是设计师,不是开发人员……我是来寻求帮助的,而不是一些愚蠢的答案
    【解决方案3】:

    假设这个 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-&gt;getElementsByTagName('li')-&gt;length

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2022-12-05
        • 2012-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-03
        • 2011-08-26
        • 1970-01-01
        相关资源
        最近更新 更多