src/Template/Tokenizer/Token/Element.php
private function parseContents(string $html): string
    {
        if (\trim($html) === '') {
            return '';
        }

        // Determine value.
        $this->value = $html;
        if (\preg_match("/(.*)<\/\s*" . $this->name . "\s*>/iU", $html, $valueMatches) === 1) {
            $this->value = $valueMatches[1];
        }

        // Don't parse contents of "iframe" element.
        if ($this->name === 'iframe') {
            return $this->parseNoContents('iframe', $html);
        }

        // Only TEXT inside a "script" element.
        if ($this->name === 'script') {
            return $this->parseForeignContents('script', $html);
        }

        // Only TEXT inside a "style" element.
        if ($this->name === 'style') {
            return $this->parseForeignContents('style', $html);
        }

        // Parse contents one token at a time.
        $remainingHtml = $html;
        while ($this->isAnotherTokenPresent($remainingHtml)) {
            $token = Tokenizer::buildFromHtml($remainingHtml, $this);

            if (!$token instanceof TokenInterface || $token->isClosingElementImplied($remainingHtml)) {
                return $remainingHtml;
            }

            $remainingHtml = $token->parse($remainingHtml);
            $this->children[] = $token;
        }

        $this->removeLastTokenIfContainsOnlyWhitespace();

        // Remove remaining closing tag.
        $posOfClosingBracket = \mb_strpos($remainingHtml, '>');

        return \mb_substr($remainingHtml, $posOfClosingBracket + 1);
    }
private function parseContents(string $html): string
    {
        if (\trim($html) === '') {
            return '';
        }

        // Determine value.
        $this->value = $html;
        if (\preg_match("/(.*)<\/\s*" . $this->name . "\s*>/iU", $html, $valueMatches) === 1) {
            $this->value = $valueMatches[1];
        }

        // Don't parse contents of "iframe" element.
        if ($this->name === 'iframe') {
            return $this->parseNoContents('iframe', $html);
        }

        // Only TEXT inside a "script" element.
        if ($this->name === 'script') {
            return $this->parseForeignContents('script', $html);
        }

        // Only TEXT inside a "style" element.
        if ($this->name === 'style') {
            return $this->parseForeignContents('style', $html);
        }

        // Parse contents one token at a time.
        $remainingHtml = $html;
        while ($this->isAnotherTokenPresent($remainingHtml)) {
            $token = Tokenizer::buildFromHtml($remainingHtml, $this);

            if (!$token instanceof TokenInterface || $token->isClosingElementImplied($remainingHtml)) {
                return $remainingHtml;
            }

            $remainingHtml = $token->parse($remainingHtml);
            $this->children[] = $token;
        }

        $this->removeLastTokenIfContainsOnlyWhitespace();

        // Remove remaining closing tag.
        $posOfClosingBracket = \mb_strpos($remainingHtml, '>');

        return \mb_substr($remainingHtml, $posOfClosingBracket + 1);
    }
private function parseContents ( string $ html ) : string { if ( \ trim ( $ html ) === '' ) { return '' ; } // Determine value. $ this -> value = $ html ; if ( \ preg_match ( "/(.*)<\/\s*" . $ this -> name . "\s*>/iU" , $ html , $ valueMatches ) === 1 ) { $ this -> value = $ valueMatches [ 1 ] ; } // Don't parse contents of "iframe" element. if ( $ this -> name === 'iframe' ) { return $ this -> parseNoContents ( 'iframe' , $ html ) ; } // Only TEXT inside a "script" element. if ( $ this -> name === 'script' ) { return $ this -> parseForeignContents ( 'script' , $ html ) ; } // Only TEXT inside a "style" element. if ( $ this -> name === 'style' ) { return $ this -> parseForeignContents ( 'style' , $ html ) ; } // Parse contents one token at a time. $ remainingHtml = $ html ; while ( $ this -> isAnotherTokenPresent ( $ remainingHtml ) ) { $ token = Tokenizer :: buildFromHtml ( $ remainingHtml , $ this ) ; if ( ! $ token instanceof TokenInterface || $ token -> isClosingElementImplied ( $ remainingHtml ) ) { return $ remainingHtml ; } $ remainingHtml = $ token -> parse ( $ remainingHtml ) ; $ this -> children [ ] = $ token ; } $ this -> removeLastTokenIfContainsOnlyWhitespace ( ) ; // Remove remaining closing tag. $ posOfClosingBracket = \ mb_strpos ( $ remainingHtml , '>' ) ; return \ mb_substr ( $ remainingHtml , $ posOfClosingBracket + 1 ) ; }
Will parse the contents of this element.

@param string $html

@return string Remaining HTML.
Will parse the contents of this element .