PHP - função token_get_all ()

A função token_get_all () pode dividir uma determinada fonte em tokens PHP.

Sintaxe

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

A função token_get_all () pode analisar uma determinada string de origem em tokens de linguagem PHP usando o scanner léxico do motor Zend. Para uma lista de tokens do analisador, podemos usar a função token_name () para traduzir um valor de token em sua representação de string.

A função token_get_all () pode retornar uma matriz de identificadores de token. Cada identificador de token individual é um único caractere (ou seja:;,.,>,! Etc ...) ou uma matriz de três elementos contendo índice de token no elemento 0, conteúdo de string de um token original no elemento 1 e linha número no elemento 2.

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

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

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