PHP技术 Tokenizer 学习笔记
来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-02 05:48 点击:次
简述
在某个项目中需要分析 PHP 代码,分离出对应的函数调用(以及源代码对应的位置)。虽然这使用正则也可以实现,但无论从效率还是代码复杂度方面考虑,这都不是最优的方式。
查询了 PHP 手册,发现其实 PHP 已经内置解析器的接口,那就是 PHP Tokenizer,这工具正是我想要的。使用 PHP Tokenizer 能简单、高效、准确的分析出 PHP 源代码的组成。
实例
官方站点对 Tokenizer 的文档很少,不过这不影响我们理解它。Tokenizer 组件仅仅包含两个函数:token_get_all 以及 token_name,它们分别用于分析 PHP 代码以及获取代码对应的标识符名称。
下面是个简单的实例,说明如何使用这两个函数:
以下为引用的内容: $code = '<?php echo "string1"."string2"; ?>'; $tokens = token_get_all($code); foreach ($tokens as $token) { if (is_array($token)) { // 行号、标识符字面量、对应内容 printf("%d - %s\t%s\n", $token[2], token_name($token[0]), $token[1]); } } |
对应的输出为