自动解析PHP以将PHP代码与HTML分离

SRo*_*mes 5 php parsing code-generation antlr

我正在开发一个大的PHP代码库; 我想将PHP代码与HTML和JavaScript分开.(我需要在PHP代码上进行几次自动搜索和替换,在HTML上进行不同的搜索和替换,在JS上进行不同的操作).是否有一个很好的解析器引擎可以为我分离PHP?我可以使用正则表达式来做到这一点,但它们并不完美.我可以在ANTLR中构建一些东西,但是一个好的现有解决方案将是最好的.

我应该说清楚:我不想要或不需要一个完整的PHP解析器.只需要知道给定的令牌是否是: - PHP代码 - PHP单引号字符串 - PHP双引号字符串 - PHP评论 - 不是PHP,而是HTML/JavaScript

Pek*_*ica 3

要将 PHP 与其他部分分开,PHP 的内置分词器是您的最佳选择:请参阅token_get_all()

对于其余的,您可能最好使用DOM 解析器。这样,隔离各个<script>部分(以及外部脚本,甚至事件)就很容易了。onXXXX

不过,从解析后的 DOM 树重新构建相同的文档可能很困难 - 我想这取决于您需要对结果做什么以及原始 HTML 的干净程度。正则表达式(哎呀!)可以更好地解决该部分。