PHP - Función token_get_all ()

La función token_get_all () puede dividir una fuente determinada en tokens PHP.

Sintaxis

array token_get_all( string $source [, int $flags = 0 ] )

La función token_get_all () puede analizar una cadena de origen determinada en tokens de lenguaje PHP utilizando el escáner léxico del motor Zend. Para obtener una lista de tokens del analizador, podemos usar la función token_name () para traducir un valor de token en su representación de cadena.

La función token_get_all () puede devolver una matriz de identificadores de token. Cada identificador de token individual es un solo carácter (es decir:;,.,>,! Etc ...), o una matriz de tres elementos que contiene el índice del token en el elemento 0, el contenido de la cadena de un token original en el elemento 1 y la línea número en el elemento 2.

Ejemplo 1

<?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;
      }
   }
?>

Ejemplo 2

<?php
   $tokens = token_get_all("/* comment */");

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

Ejemplo 3

<?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;
      }
   }
?>