doupo2157 2014-07-20 10:05
浏览 27
已采纳

PHP strip_tags也是无序列表的内容

I am using PHP's strip_tags as part of a process to show 'teaser' text for a web page, however this teaser text makes no sense when the stripped content included an unordered list. These lists are not wanted in the teaser so is there a way to remove everything in the ul and li html tags?

  • 写回答

1条回答 默认 最新

  • duanmie9682 2014-07-20 10:24
    关注

    Here is a solution with the use of DOMdocument.

    $html = <<<EOF
    <div id="test">
        <p>Foobar</p>
        <ul>
            <li>Foo</li>
            <li>Bar</li>
        </ul>
        <ol>
            <li>Bar</li>
            <li>Foo</li>
        </ol>
    </div>
    EOF;
    $dom = new DOMDocument;
    if($dom->loadHTML($html)) {
        foreach(array('ul','ol') as $listElement) {
            while (($r = $dom->getElementsByTagName($listElement)) && $r->length) {
                    $r->item(0)->parentNode->removeChild($r->item(0));
            }
        }
    }
    $html = $dom->saveHTML();
    echo trim(strip_tags($html));
    

    And I used the code from this answer by Sébastien Renauld. DOMDocument remove script tags from HTML source

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 图书信息管理系统程序编写
  • ¥15 7-1 jmu-java-m02-使用二维数组存储多元线性方程组
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题