token_get_all() parses the given source
string into PHP language tokens using the Zend engine's lexical scanner.
For a list of parser tokens, see List of Parser Tokens, or use token_name() to translate a token value into its string representation.
The PHP source to parse.
Valid flags:
-
TOKEN_PARSE
- Recognises the ability to use reserved words in specific contexts.
An array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a three element array containing the token index in element 0, the string content of the original token in element 1 and the line number in element 2.
Added the optional flags
parameter along with the TOKEN_PARSE
flag.
Line numbers are returned in element 2
1 2 3 4 5 6 7 8 9 | <?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; } } ?> |
The above example will output something similar to:
Line 1: T_OPEN_TAG ('<?php ') Line 1: T_ECHO ('echo') Line 1: T_WHITESPACE (' ') Line 1: T_CLOSE_TAG ('?>')
1 2 3 4 5 6 7 8 9 | <?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; } } ?> |
The above example will output something similar to:
Line 1: T_INLINE_HTML ('/* comment */')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?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; } } ?> |
The above example will output something similar to:
T_OPEN_TAG T_WHITESPACE T_CLASS T_WHITESPACE T_STRING T_CONST T_WHITESPACE T_STRING T_LNUMBER
Please login to continue.