PHP DOMDocument剝離HTML標籤php


Answers

Question

我正在研究一個小的模板引擎,我正在使用DOMDocument解析頁面。 我的測試頁面到目前為止是這樣的:

<block name="content">

   <?php echo 'this is some rendered PHP! <br />' ?>

   <p>Main column of <span>content</span></p>

</block>

我班的一部分看起來像這樣:

private function parse($tag, $attr = 'name')
{
    $strict = 0;
    /*** the array to return ***/
    $out = array();
    if($this->totalBlocks() > 0)
    {
        /*** a new dom object ***/
        $dom = new domDocument;
        /*** discard white space ***/
        $dom->preserveWhiteSpace = false;

        /*** load the html into the object ***/
        if($strict==1)
        {
            $dom->loadXML($this->file_contents);
        }
        else
        {
            $dom->loadHTML($this->file_contents);
        }

        /*** the tag by its tag name ***/
        $content = $dom->getElementsByTagname($tag);

        $i = 0;
        foreach ($content as $item)
        {
            /*** add node value to the out array ***/
            $out[$i]['name'] = $item->getAttribute($attr);
            $out[$i]['value'] = $item->nodeValue;
            $i++;
        }
    }

    return $out;
}

我按照我想要的方式工作,它抓取頁面上的每個<block>,並將其內容注入到我的模板中,但是,它正在剝離<block>中的HTML標記,因此返回以下內容,而不使用<p>或<span>標籤:

this is some rendered PHP! Main column of content

我在這裡做錯了什麼? :) 謝謝




Tags