(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
token_get_all — Scinde un code source en éléments de base
$code, int $flags = 0): array
   token_get_all() analyse la chaîne donnée
   source en utilisant l'analyseur lexical du moteur Zend.
  
Pour une liste des tokens, voir Liste des jetons de l'analyseur, ou utilisez la fonction token_name() pour traduire une valeur token dans une représentation sous forme de chaîne de caractères.
codeLe source PHP à analyser.
flagsDrapeaux valides :
TOKEN_PARSE - Reconnait la possibilité d'utiliser
          les mots réservés dans des contextes spécifiques.
         
        
   Un tableau contenant la liste des descriptions des éléments. Chaque élément
   du tableau peut être un caractère unique (i.e.: ;,
   ., >, !, etc.),
   ou un tableau contenant un identifiant de token dans l'élément 0,
   la représentation textuelle originale de ce token dans l'élément 1,
   et le numéro de la ligne dans l'élément 2.
  
Exemple #1 Exemple avec token_get_all()
<?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;
    }
}
?>
Résultat de l'exemple ci-dessus est similaire à :
Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')
Exemple #2 Exemple d'utilisation incorrecte de la fonction token_get_all()
<?php
$tokens = token_get_all('/* commentaire */');
foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Ligne {$token[2]} : ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>
Résultat de l'exemple ci-dessus est similaire à :
Ligne 1 : T_INLINE_HTML ('/* comment */')
T_INLINE_HTML plutôt que T_COMMENT,
   ce qui aurait pu être attendu. Ceci est dû au fait qu'aucune balise ouvrante n'a été
   utilisée dans le code fourni. Cela correspond à mettre une commentaire en dehors
   des balises PHP dans un fichier classique.
  
  
Exemple #3 token_get_all() dans une classe en utilisant un mot réservé
<?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;
    }
}
?>
Résultat de l'exemple ci-dessus est similaire à :
T_OPEN_TAG T_WHITESPACE T_CLASS T_WHITESPACE T_STRING T_CONST T_WHITESPACE T_STRING T_LNUMBER
TOKEN_PARSE, le pénultième jeton
   (T_STRING) aurait du être
   T_PUBLIC.