Replace Tag in HTML with DOMDocument

后端 未结 2 1379
攒了一身酷
攒了一身酷 2021-01-18 17:51

I\'m trying to edit html tags with DOMDocument::loadHTML in php. The html data is a part of html and not the whole page. I followed what this page (PHP - DOMDocument - need

2条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-18 18:24

    Another way with paquettg/php-html-parser (didn't find the way to change name, so had to use hack with re-binding $this):

    use PHPHtmlParser\Dom;
    use PHPHtmlParser\Dom\HtmlNode;
    
    $dom = new Dom;
    $dom->load($text);
    /** @var HtmlNode[] $tags */
    foreach($dom->find('pre') as $tag) {
        $changeTag = function() {
            $this->name = 'div';
        };
        $changeTag->call($tag->tag);
    };
    echo (string)$dom;
    

提交回复
热议问题