解析和打印PHP代码

时间:2011-02-21 15:47:36

标签: php parsing

最好是我想要一个允许我从PHP解析PHP 的解决方案,但欢迎任何解决方案。 (作为我正在寻找的一个例子,Ruby有 - 其中包括ruby_parser gem。)


修改

我希望从PHP代码生成某种抽象语法树。 (除非我弄错了,否则我完全了解eval函数的存在和行为。)

将PHP代码解析为某种抽象语法树有哪些选项(如果有的话)?将这些语法树转换回(可读)PHP代码有哪些选择?

3 个答案:

答案 0 :(得分:2)

编辑:这个答案是在@pepjin编辑他们的问题并改变了要求之前编写的。有关上下文,请参阅comments


eval()从PHP中执行PHP代码。

要分析您自己的微语言等PHP代码,您可以使用PHP Tokenizer。解析器令牌列表:http://www.php.net/manual/en/tokens.php

答案 1 :(得分:2)

标记生成器与解析器不同。标记生成器只生成标记而不是树格式。对于那些实际上想要为PHP生成AST的人,类似于ruby_parser为Ruby所做的那些,请使用PHP-Parser项目(https://github.com/nikic/PHP-Parser)。

PHP-Parser项目还附带了一台漂亮的打印机,可以将AST转回PHP。

答案 2 :(得分:1)

你正在寻找eval的邪恶()我相信。

http://php.net/manual/es/function.eval.php