PHP - 计算 ul 内的 li 元素

发布于 2024-12-04 12:50:35 字数 386 浏览 1 评论 0原文

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

例如:

<ul>

  <li> lorem </li>

  <li> ipsum </li>

  <li> dolor </li>

  <li> sit </li>

</ul>

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

有什么方法可以在 php 中实现这一点吗?

提前致谢!

编辑:

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

i'm searching for a way to count dynamic li elements inside an ul in php (not js).

For example:

<ul>

  <li> lorem </li>

  <li> ipsum </li>

  <li> dolor </li>

  <li> sit </li>

</ul>

would return me the number 4.
(am i too stupid to use proper code here?)

Is there some way to accomplish that in php?

Thanks in advance!

EDIT:

The markup is generated by a cms system, the count should be placed before the list, inside the template file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

影子是时光的心 2024-12-11 12:50:35

您可以对

  • 执行非常简单的子字符串计数 ; (或 -li-) 在该字符串上,它将返回项目的数量。

  • 编辑:

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

    You can do a very simple Substring Count for <li> (or -li-) on that string and it would return the number of items.


    Edit:

    $count = substr_count($html,'<li>'); //where $html holds your piece of HTML.
    
    帅气称霸 2024-12-11 12:50:35

    假设这个 HTML 不是您输出的(否则计算元素数量应该很简单),您可以使用 PHP 的 DOM文档

    $dom = new DOMDocument;
    
    $dom->loadHTML($str);
    
    foreach($dom->getElementsByTagName('ul') as $ul) {
    
       $count = $ul->getElementsByTagName('li')->length;
    
       var_dump($count);
    
    }
    

    键盘

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

    Assuming this HTML is not output by you (otherwise it should be trivial to count the number of elements), you could use PHP's DOMDocument.

    $dom = new DOMDocument;
    
    $dom->loadHTML($str);
    
    foreach($dom->getElementsByTagName('ul') as $ul) {
    
       $count = $ul->getElementsByTagName('li')->length;
    
       var_dump($count);
    
    }
    

    CodePad.

    This code will count the number of li elements in each ul element. If you don't care about individual ul elements, just use $dom->getElementsByTagName('li')->length.

    无敌元气妹 2024-12-11 12:50:35

    您的答案在于 DOMDocument

    例如:

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

    Your answer lies with DOMDocument.

    For example:

    $dom = new DOMDocument();
    $dom -> loadHTML("<ul><li></li><li></li></ul>");
    $li = $dom->getElementsByTagName("li");
    foreach ($li as $li_c){
    $i++;
    }
    echo $i;
    
    沧笙踏歌 2024-12-11 12:50:35

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

    Use PHP's DOM library, or look up Simple DOM Parser. It contain searches for HTML

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文