我有一个 php 项目需要从 php 5.3 升级到 php 5.6(最终升级到 php7),从我在 PHP 文档中看到的内容来看,preg_replace的/e 修饰符已被弃用,并且将被删除,我必须搜索它的所有出现并删除它们(并用其他东西替换它们, 如preg_replace_callback)。
问题是有很多调用preg_replace(大约 2100 个调用),手动检查每个调用需要花费大量时间,我想创建一个脚本(php 脚本或 bash 脚本)来搜索所有使用指定修饰符的preg_replace调用。我在网上搜索过,我发现这应该使用正则表达式或分词器来完成。我已经尝试过,但我还没有设法创建一个脚本来做到这一点(主要是因为我没有真正使用提到的两个功能中的任何一个,并且不精通其中任何一个)。
我想知道是否有更简单的方法可以做到这一点,或者是否有人可以帮助我创建一个脚本来搜索整个代码库并输出所需的调用。
提前谢谢你。
您可以使用代码编辑器的查找和替换:
- 备份你的代码(如果你不使用git或其他东西)
- 使用"在文件夹中查找"(或类似选项)
- 搜索时选中正则表达式(或类似)选项
- 使用一个简单的正则表达式,例如
preg_replace*?'/e
- 逐个替换出现项
- 在 PHP 5.6 环境中移动您的代码,看看它是否有效。