代码

时间:2016-04-24 06:42:40

标签: php regex bash tokenize

我有一个需要从php 5.3升级到php 5.6(最终到php7)的php项目,而且从我在PHP文档中看到的,preg_replace的/ e修饰符已被弃用,并且将被删除,我必须搜索它的所有出现并删除它们(并用其他东西替换它们,例如preg_replace_callback)。

问题是有很多调用preg_replace(大约2100个调用),并且需要花费大量时间手动检查每个调用,并且我想创建一个脚本(php脚本或者bash脚本),它搜索所有使用指定修饰符的preg_replace调用。我在网上搜索过,我发现这应该用正则表达式或者用tokenizer来完成。我已经尝试过了,但是我还没有设法创建一个这样做的脚本(主要是因为我没有真正使用过所提到的两个功能中的任何一个,并且我不熟悉它们中的任何一个)。

我想知道是否有更简单的方法可以帮助我创建一个搜索整个代码库并输出所需调用的脚本。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用代码编辑器查找并替换:

  1. 备份您的代码(如果您不使用git或其他内容)
  2. 使用“在文件夹中查找”(或类似)选项
  3. 搜索时检查正则表达式(或类似)选项
  4. 使用像preg_replace*?\/e
  5. 这样的简单正则表达式
  6. 逐个更换出现
  7. 在PHP 5.6环境中移动代码并查看它是否有效。