在PHP应用程序中检测硬编码标签文本

时间:2012-03-22 07:50:19

标签: php javascript label static-analysis template-engine

有没有办法检测可能需要由PHP应用程序中的标签替换的硬编码标签文本?我不仅讨论PHP文件,还讨论javascript,xml文件和SMARTY / TWIG模板。多语言应用程序中是否有标准程序?

2 个答案:

答案 0 :(得分:1)

对于PHP,您可以使用token_get_all()迭代模板文件。

您会查看T_STRING令牌,然后检查它们的占位符格式是否相同。例如:“全部大写”或类似的东西。


对于xml来说,这几乎是相同的交易,在节点上进行迭代,并检查是否有任何文本内容在你只想要占位符的地方飞来飞去。

答案 1 :(得分:0)

我们的搜索引擎是一种有效搜索大型代码库的工具,可以对语言词汇结构编制索引以加快搜索速度。因此它比grep更快,并且在这些语言词汇方面允许更多细微差别的查询。

查询是一系列具有各种约束的词位的形式。有人可能会写一个查询:

   I=*foo* '.' S=*hello

意思是:“找到一个包含'foo'的标识符,后跟一个连接运算符,后跟一个字符串,字符串'hello'在结尾处。对于PHP,通用lexeme S代表所有字符串类型的文字(如果你愿意的话,你可以专门搜索它们。因为搜索引擎理解词法语法,所以不会因插入空格,换行符或注释而混淆,所以你不必知道布局来找到它。(如果你坚持的话,会发现有约束的评论标记)。

您不必设置约束:

   I=*foo* '.' S

找到任何标识符点串组合。

查询

   S

本身直接回答OP的问题“文字字符串在哪里?”任何类型。