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

从数据库遍历HTML字符串中的<p>标记

  •  0
  • CairoCoder  · 技术社区  · 7 年前

    我想循环一下

    例子:

    $htmlString = "<p>1</p><p>2</p><p>3</p>";
    

    我想循环一下 $htmlString 变量并得到1、2、3,如下所示:

    1
    2
    3
    

    我已经试过了 simplexml_load_string() 功能:

    $x = "<p>1</p><p>2</p>";
    $xml = simplexml_load_string($x);
    foreach ($xml->p as $p) {
        {
            echo $p;
        }
    }
    

    但它给出了错误:

    Warning: simplexml_load_string(): Entity: line 1: parser error : Extra content at the end of the document
    
    Warning: simplexml_load_string(): <p>1</p><p>2</p>
    
    Warning: simplexml_load_string(): ^ 
    
    Notice: Trying to get property 'p' of non-object
    
    Warning: Invalid argument supplied for foreach()
    
    4 回复  |  直到 7 年前
        1
  •  6
  •   mega6382    7 年前

    DOMDocument 相反,它将帮助您更轻松地解析HTML,下面是一个示例代码:

    <?php
    
    $string = "<p>1</p><p>2</p>";
    $domDocument = new DOMDocument();
    $domDocument->loadHTML($string);
    $paragraphElements = $domDocument->getElementsByTagName('p');
    foreach ($paragraphElements as $p) {
    
            var_dump($p->nodeValue);
    
    }
    

    输出:

    string '1' (length=1)
    string '2' (length=1)
    
        2
  •  1
  •   nice_dev    7 年前

    代码:

    <?php
    
    
    $dom_document = new DOMDocument();
    
    $dom_document->loadHTML("<p>1</p><p>2</p><p>3</p>");
    
    $p_tags = $dom_document->getELementsByTagName("p");
    
    for($i=0;$i<$p_tags->length;++$i){
        echo $p_tags->item($i)->nodeValue,"<br/>";
    }
    
        3
  •  -1
  •   AnTrakS    7 年前

    为什么使用简单XML?有 HTML DOM Parser :

    <?php
    $x = "<p>1</p><p>2</p>";
    $html = str_get_html($x);
    $html->find('p');
    echo $html; // Outputs 1 and 2
    ?>
    

    https://github.com/sunra/php-simple-html-dom-parser

        4
  •  -1
  •   Letícia Fernandes    7 年前
    $x = "<p>1</p><p>2</p>";
    
    $values = str_replace(array('<p>', '</p>'), ' ', $x);
    $values = explode(' ', $values);
    
    foreach ($values as $val){
        echo($val);
    }
    
    推荐文章