Habari\HTMLTokenSet::token_to_string PHP Метод

token_to_string() публичный статический Метод

Convert a token to a string
public static token_to_string ( array $token, boolean $escape = true ) : string
$token array The token to convert
$escape boolean Whether to escape the string that is returned
Результат string The string representation of the token
    public static function token_to_string(array $token, $escape = true)
    {
        switch ($token['type']) {
            case HTMLTokenizer::NODE_TYPE_TEXT:
                return $escape ? Utils::htmlspecialchars(html_entity_decode($token['value'], ENT_QUOTES, 'UTF-8')) : $token['value'];
                break;
            case HTMLTokenizer::NODE_TYPE_ELEMENT_OPEN:
            case HTMLTokenizer::NODE_TYPE_ELEMENT_EMPTY:
                $out = '<' . $token['name'];
                if (isset($token['attrs']) && is_array($token['attrs'])) {
                    foreach ($token['attrs'] as $attr => $attrval) {
                        $out .= " {$attr}=\"";
                        if ($escape) {
                            $out .= Utils::htmlspecialchars(html_entity_decode($attrval, ENT_QUOTES, 'UTF-8'));
                        } else {
                            $out .= html_entity_decode($attrval, ENT_QUOTES, 'UTF-8');
                        }
                        $out .= '"';
                    }
                }
                $out .= '>';
                break;
            case HTMLTokenizer::NODE_TYPE_ELEMENT_CLOSE:
                $out = "</{$token['name']}>";
                break;
            case HTMLTokenizer::NODE_TYPE_PI:
                $out = "<?{$token['name']}{$token['value']}>";
                break;
            case HTMLTokenizer::NODE_TYPE_COMMENT:
                $out = "<!--{$token['value']}-->";
                break;
            case HTMLTokenizer::NODE_TYPE_CDATA_SECTION:
                $out = "<![CDATA[{$token['value']}]]>";
                break;
            case HTMLTokenizer::NODE_TYPE_STATEMENT:
                $out = "<!{$token['name']}";
                if (!empty($token['value'])) {
                    $out .= " {$token['value']}";
                }
                $out .= ">";
                break;
        }
        return $out;
    }