private function protectTags(HtmlDomParser $dom): HtmlDomParser
    {
        // init
        $counter = 0;

        foreach ($dom->find('script, style') as $element) {

            // skip external links
            if ($element->tag === 'script' || $element->tag === 'style') {
                $attributes = $element->getAllAttributes();
                if (isset($attributes['src'])) {
                    continue;
                }
            }

            $this->protectedChildNodes[$counter] = $element->text();
            $element->getNode()->nodeValue = '<' . $this->protectedChildNodesHelper . ' data-' . $this->protectedChildNodesHelper . '="' . $counter . '"></' . $this->protectedChildNodesHelper . '>';

            ++$counter;
        }

        foreach ($dom->find('code, nocompress') as $element) {
            if ($element->isRemoved()) {
                continue;
            }

            $this->protectedChildNodes[$counter] = $element->parentNode()->innerHtml();
            $element->getNode()->parentNode->nodeValue = '<' . $this->protectedChildNodesHelper . ' data-' . $this->protectedChildNodesHelper . '="' . $counter . '"></' . $this->protectedChildNodesHelper . '>';

            ++$counter;
        }

        foreach ($dom->find('//comment()') as $element) {
            $text = $element->text();

            // skip normal comments
            if (!$this->isConditionalComment($text)) {
                continue;
            }

            $this->protectedChildNodes[$counter] = '<!--' . $text . '-->';

            /* @var $node \DOMComment */
            $node = $element->getNode();
            $child = new \DOMText('<' . $this->protectedChildNodesHelper . ' data-' . $this->protectedChildNodesHelper . '="' . $counter . '"></' . $this->protectedChildNodesHelper . '>');
            /** @noinspection UnusedFunctionResultInspection */
            $element->getNode()->parentNode->replaceChild($child, $node);

            ++$counter;
        }

        return $dom;
    }
private function protectTags(HtmlDomParser $dom): HtmlDomParser
    {
        // init
        $counter = 0;

        foreach ($dom->find('script, style') as $element) {

            // skip external links
            if ($element->tag === 'script' || $element->tag === 'style') {
                $attributes = $element->getAllAttributes();
                if (isset($attributes['src'])) {
                    continue;
                }
            }

            $this->protectedChildNodes[$counter] = $element->text();
            $element->getNode()->nodeValue = '<' . $this->protectedChildNodesHelper . ' data-' . $this->protectedChildNodesHelper . '="' . $counter . '"></' . $this->protectedChildNodesHelper . '>';

            ++$counter;
        }

        foreach ($dom->find('code, nocompress') as $element) {
            if ($element->isRemoved()) {
                continue;
            }

            $this->protectedChildNodes[$counter] = $element->parentNode()->innerHtml();
            $element->getNode()->parentNode->nodeValue = '<' . $this->protectedChildNodesHelper . ' data-' . $this->protectedChildNodesHelper . '="' . $counter . '"></' . $this->protectedChildNodesHelper . '>';

            ++$counter;
        }

        foreach ($dom->find('//comment()') as $element) {
            $text = $element->text();

            // skip normal comments
            if (!$this->isConditionalComment($text)) {
                continue;
            }

            $this->protectedChildNodes[$counter] = '<!--' . $text . '-->';

            /* @var $node \DOMComment */
            $node = $element->getNode();
            $child = new \DOMText('<' . $this->protectedChildNodesHelper . ' data-' . $this->protectedChildNodesHelper . '="' . $counter . '"></' . $this->protectedChildNodesHelper . '>');
            /** @noinspection UnusedFunctionResultInspection */
            $element->getNode()->parentNode->replaceChild($child, $node);

            ++$counter;
        }

        return $dom;
    }
private function protectTags ( HtmlDomParser $ dom ) : HtmlDomParser { // init $ counter = 0 ; foreach ( $ dom -> find ( 'script, style' ) as $ element ) { // skip external links if ( $ element -> tag === 'script' || $ element -> tag === 'style' ) { $ attributes = $ element -> getAllAttributes ( ) ; if ( isset ( $ attributes [ 'src' ] ) ) { continue ; } } $ this -> protectedChildNodes [ $ counter ] = $ element -> text ( ) ; $ element -> getNode ( ) -> nodeValue = '<' . $ this -> protectedChildNodesHelper . ' data-' . $ this -> protectedChildNodesHelper . '="' . $ counter . '"></' . $ this -> protectedChildNodesHelper . '>' ; ++ $ counter ; } foreach ( $ dom -> find ( 'code, nocompress' ) as $ element ) { if ( $ element -> isRemoved ( ) ) { continue ; } $ this -> protectedChildNodes [ $ counter ] = $ element -> parentNode ( ) -> innerHtml ( ) ; $ element -> getNode ( ) -> parentNode -> nodeValue = '<' . $ this -> protectedChildNodesHelper . ' data-' . $ this -> protectedChildNodesHelper . '="' . $ counter . '"></' . $ this -> protectedChildNodesHelper . '>' ; ++ $ counter ; } foreach ( $ dom -> find ( '//comment()' ) as $ element ) { $ text = $ element -> text ( ) ; // skip normal comments if ( ! $ this -> isConditionalComment ( $ text ) ) { continue ; } $ this -> protectedChildNodes [ $ counter ] = '<!--' . $ text . '-->' ; /* @var $node \DOMComment */ $ node = $ element -> getNode ( ) ; $ child = new \ DOMText ( '<' . $ this -> protectedChildNodesHelper . ' data-' . $ this -> protectedChildNodesHelper . '="' . $ counter . '"></' . $ this -> protectedChildNodesHelper . '>' ) ; /** @noinspection UnusedFunctionResultInspection */ $ element -> getNode ( ) -> parentNode -> replaceChild ( $ child , $ node ) ; ++ $ counter ; } return $ dom ; }
Prevent changes of inline "styles" and "scripts".

@param HtmlDomParser $dom

@return HtmlDomParser
Prevent changes of inline styles and scripts .