【发布时间】:2011-07-13 07:20:27
【问题描述】:
我有一个关于在所有 php 文件中替换某些变量名的棘手问题,即将所有 php 文件中的 _$foo_ 重命名为 _$bar["foo"]_。我打算将所有 php 文件作为文本读取并替换所需的变量,然后将 php 文件作为文本写回。
但难点是,我不能直接把$foo换成$bar["foo"],情况有:
1)_echo "hello $foo";_ _echo "hello ".$bar["foo"];_或_echo "hello {$bar["foo"]}";_
2) _echo 'hello $foo';_
我可以想象会有很多复杂的案件需要处理。想知道是否有任何现有的工具或库可以安全地进行这种替换,或者任何人有更好的算法来处理?非常感谢。
【问题讨论】:
-
实际上我有一个包含数万个变量的语言文件需要重命名。我手头有变量名列表,打算将变量传递到脚本中,让它循环遍历变量列表并替换所有 php 文件。
-
可能写一个小的php脚本来做替换是唯一的方法,在阅读每个php文件后我能想到几种方法1)按变量名拆分内容,然后分析每个元素来决定页面中哪些变量需要替换,然后写回新的php 2)从php文件中逐句抓取,查看变量是否在引号内,决定如何重命名变量。跨度>
-
但是这两种方式都需要大量的编程工作来检查条件并且容易遗漏一些情况,所以我想知道是否有人以前做过或有用于此任务的有用工具