代码之家  ›  专栏  ›  技术社区  ›  Jeff

如何使用PHP的DOM扩展loadHTML

php
  •  3
  • Jeff  · 技术社区  · 16 年前

    this page

    <div><p>The quick brown <a href="">fox jumps...

    4 回复  |  直到 16 年前
        1
  •  3
  •   Mark Tomlin    16 年前

    可以用 DOMDocument DOMDocument::loadHTML ()& DOMDocument::normalizeDocument ()方法。

    <?php
        $html = '<div><p>The quick brown <a href="">fox jumps';
    
        $DDoc = new DOMDocument();
        $DDoc->loadHTML($html);
        $DDoc->normalizeDocument();
    
        echo $DDoc->saveHTML();
    ?>
    

    输出:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
    <html><body><div><p>The quick brown <a href="">fox jumps</a></p></div></body></html> 
    

    从那里,只是 substr & strpos 去掉你不想要的html,就像这样:

    <?php
        $html = '<div><p>The quick brown <a href="">fox jumps';
    
        $DDoc = new DOMDocument();
        $DDoc->loadHTML($html);
        $DDoc->normalizeDocument();
    
        $html = $DDoc->saveHTML();
    
        # Remove Everything Before & Including The Opening HTML & Body Tags.
        $html = substr($html, strpos($html, '<html><body>') + 12);
        # Remove Everything After & Including The Closing HTML & Body Tags.
        $html = substr($html, 0, -14);
    
        echo $html;
    ?>
    
        2
  •  2
  •   tplaner    16 年前
        4
  •  0
  •   Franz    16 年前

    我会这样做:

    1. 删除该点之后的所有子节点
    2. 截断字符串
    推荐文章