PHP - fonction token_get_all ()

La fonction token_get_all () peut diviser une source donnée en jetons PHP.

Syntaxe

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

La fonction token_get_all () peut analyser une chaîne source donnée en jetons de langage PHP en utilisant le scanner lexical du moteur Zend. Pour une liste de jetons d'analyseur, nous pouvons utiliser la fonction token_name () pour traduire une valeur de jeton en sa représentation sous forme de chaîne.

La fonction token_get_all () peut renvoyer un tableau d'identificateurs de jetons. Chaque identifiant de jeton individuel est soit un caractère unique (c'est-à-dire:;,.,>,! Etc ...), ou un tableau à trois éléments contenant l'index du jeton dans l'élément 0, le contenu de la chaîne d'un jeton d'origine dans l'élément 1 et la ligne nombre dans l'élément 2.

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

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

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