token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_get_allDivide la fuente dada en tokens PHP

Descripción

token_get_all(string$code, int$flags = 0): array

token_get_all() parsea el string de la source dada en tokens PHP usando el escaneador de léxico de Zend Engine.

Para ver la lista de los tokens analizados, vea Lista de componentes léxicos del analizador, o use token_name() para traducir un valor token en su representación en string.

Parámetros

source

La fuente PHP a analizar.

flags

Banderas válidas:

  • TOKEN_PARSE - Reconoce la capacidad de usar palabras reservadas en contextos específicos.
flags

Valores válidos:

  • TOKEN_PARSE - Reconoce la capacidad de usar palabras reservadas en contextos específicos.

Valores devueltos

Un array de tokens identificadores. Cada token identificador individual es al mismo tiempo un carácter único (por ejemplo: ;, ., >, !, etc...), un array de tres elementos conteniendo el índice de token en el elemento 0, el contenido del string del token original en el elemento 1 y el número de línea en el elemento 2.

Ejemplos

Ejemplo #1 token_get_all() ejemplos

<?php
$tokens
= token_get_all('<?php echo; ?>');

foreach (
$tokens as $token) {
if (
is_array($token)) {
echo
"Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>

El resultado del ejemplo sería algo similar a:

Line 1: T_OPEN_TAG ('<?php ') Line 1: T_ECHO ('echo') Line 1: T_WHITESPACE (' ') Line 1: T_CLOSE_TAG ('?>')

Ejemplo #2 token_get_all() ejemplo de uso incorrecto

<?php
$tokens
= token_get_all('');

foreach (
$tokens as $token) {
if (
is_array($token)) {
echo
"Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>

El resultado del ejemplo sería algo similar a:

Line 1: T_INLINE_HTML ('')
Ten en cuenta en el ejemplo anterior que la cadena se analiza como T_INLINE_HTML en lugar del esperado T_COMMENT. Esto se debe a que no se utilizó ninguna etiqueta de apertura en el código proporcionado. Esto sería equivalente a colocar un comentario fuera de las etiquetas PHP en un archivo normal.

Ejemplo #3 token_get_all() en un ejemplo de clase que usa una palabra reservada

<?php

$source
= <<<'code'
<?php

class A
{
const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach (
$tokens as $token) {
if (
is_array($token)) {
echo
token_name($token[0]) , PHP_EOL;
}
}

?>

El resultado del ejemplo sería algo similar a:

T_OPEN_TAG T_WHITESPACE T_CLASS T_WHITESPACE T_STRING T_CONST T_WHITESPACE T_STRING T_LNUMBER
Sin la bandera TOKEN_PARSE, el penúltimo token (T_STRING) habría sido T_PUBLIC.

Ejemplo #4 ejemplo de token_get_all() usado en una clase con una palabra reservada

<?php

$source
= <<<'code'
<?php

class A
{
const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach (
$tokens as $token) {
if (
is_array($token)) {
echo
token_name($token[0]) , PHP_EOL;
}
}
?>

El resultado del ejemplo sería algo similar a:

T_OPEN_TAG T_WHITESPACE T_CLASS T_WHITESPACE T_STRING T_CONST T_WHITESPACE T_STRING T_LNUMBER
Sin el uso de TOKEN_PARSE, el penúltimo token (T_STRING) hubiese sido T_PUBLIC.

Ver también

To Top