ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
标记器功能提供了与Zend Engine中嵌入的PHP标记器的接口。使用这些功能,您可以编写自己的PHP源代码分析或修改工具,而无需在词汇级别上处理语言规范。 另请参阅[有关令牌](https://www.php.net/manual/en/tokens.php)的[附录](https://www.php.net/manual/en/tokens.php)。 PHP 4.4.0 开始,这些函数默认是被激活的 PHP 的 Windows 版本已内建对此扩展的支持。不需要载入额外的扩展来使用这些函数 * [预定义常量](https://www.php.net/manual/zh/tokenizer.constants.php) * [范例](https://www.php.net/manual/zh/tokenizer.examples.php) * [Tokenizer 函数](https://www.php.net/manual/zh/ref.tokenizer.php) * [token\_get\_all](https://www.php.net/manual/zh/function.token-get-all.php)— 将提供的源码按 PHP 标记进行分割 * [token\_name](https://www.php.net/manual/zh/function.token-name.php)— 获取提供的 PHP 解析器代号的符号名称 这里是一个简单使用 tokenizer 的PHP脚本例子,它将读取一个PHP文件,去掉代码中全部注释,然后只打印纯代码 ``` /* * T_ML_COMMENT 在PHP 5中不存在. * 为了保持向后兼容性,下面的三行代码定义了它。 * * 接下来的两行只定义了PHP 5的T_DOC_COMMENT,对于PHP 4,我们将其掩码为T_ML_COMMENT */ 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; } } } ```