As funções de tokenizer podem fornecer uma interface para o tokenizer de PHP embutido no Zend Engine. Ao usar essas funções, podemos escrever nossas próprias ferramentas de análise ou modificação de código-fonte PHP sem ter que lidar com uma especificação de linguagem no nível léxico.
Exemplo
<?php
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
} else {
define('T_DOC_COMMENT', T_ML_COMMENT);
}
$source = file_get_contents('example.php');
$tokens = token_get_all($source);
foreach($tokens as $token) {
if(is_string($token)) {
// simple 1-character token
echo $token;
} else {
// token array
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_ML_COMMENT: // we've defined this
case T_DOC_COMMENT: // and this
// no action on comments
break;
default:
// anything else -> output "as is"
echo $text;
break;
}
}
}
?>