代码之家  ›  专栏  ›  技术社区  ›  Blair McMillan

从截断的HTML字符串中关闭标记

  •  2
  • Blair McMillan  · 技术社区  · 15 年前

    <p>What a mighty fine <a href="blah">da
    <p>What a mighty fine and warm <a href="htt
    <p>His name was &quot;Emil&qu
    

    很明显这会使页面扭曲,尤其是在打开的标签还没有关闭的时候。

    我想要的是一种关闭字符串中所有打开的标记的方法。我真的 真正地

    3 回复  |  直到 15 年前
        1
  •  2
  •   Emil Vikström    15 年前

    最好的办法可能是找到一个更好的算法来生成摘录,例如在截断之前运行strip_标记。

    否则,您将如何处理难以通过编程方式找到的错误,如 <p>What a mighty fine and warm <a href="htt <p>His name was &quot;Emil&qu

        2
  •  2
  •   robjmills    15 年前

    你看了吗 Tidy ?

    $options = array("show-body-only" => true); 
    $tidy = tidy_parse_string("<B>Hello</I> How are <U> you?</B>", $options);
    tidy_clean_repair($tidy);
    echo $tidy;
    

    输出:

    <b>Hello</b> How are <u>you?</u> 
    
        3
  •  1
  •   lonesomeday    15 年前

    我将为安装PHP绑定 Tidy . 然后,您可以使用以下代码来清理HTML片段:

    <?php
    
    $fragment = '<p>What a mighty fine <a href="blah">da';
    
    $tidy = new tidy();
    
    $tidy->parseString($fragment,array('show-body-only'=>true),'utf8');
    $tidy->cleanRepair();
    
    echo $tidy;