卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1829本站已运行4109

利用notepad++ 批量替换php文件未定义常量

我喜欢用帝国cms来作站,但是帝国cms有个致命的缺点,就是8.0之前的系统,只能php5.6运行,搞了7.0就会报错,就算是按网上的方法改,还是会有大量的报错信息,因为都是php常量没有定义导致的。要批量改这些未定义的常量就是一个大工程了。要解决要么等官方出8.0正式版升级,要么自己动手改,自己动手那是要搞死人的,所以就有了今天这篇文章,不过还是有缺陷。没办法。。。。。

操作步骤

打开 Notepad++。
按下快捷键 Ctrl + H 打开“查找和替换”窗口。
在“查找内容”框中输入改进后的正则表达式:
(?<!')\$add\[([^\'\$\!\]]+?)(?<!\d)\]
纯数字用这个
(?<!')\$add\[([^\'\$\!\]]+?)\](?<!\[\d+\])
在“替换为”框中输入:
$add['\1']
勾选“正则表达式”选项。
点击“全部替换”。

注意事项

Notepad++ 的正则表达式支持 :
确保你的 Notepad++ 版本支持负向后顾((?<!...))。建议使用 v7.8 或更高版本。
如果你的版本不支持负向后顾,可以考虑升级 Notepad++。
复杂情况 :
如果 $add[] 前面可能有其他字符(如空格或其他符号),需要进一步调整正则表达式。例如,允许 $add[] 前面有空格,可以将 (?<!') 改为 (?<![\'\s])。
纯数字的定义 :
当前正则表达式通过 (?<!\d) 确保中括号内的内容最后一位不是数字,从而排除纯数字的情况。
如果需要更严格地排除纯数字(例如完全由数字组成),可以将正则表达式调整为:
(?<!')\$add\[([^\'\$\!\]]+?)\](?<!\[\d+\])
复杂情况 :
如果 $add[] 中括号内存在嵌套结构(如 $add[test[subtest]]),当前正则表达式无法处理。这种情况下需要使用更复杂的解析工具(如 Python 或 PHP 脚本)。

其它用法

如果你要替换 $r[***]或是$tr[***],就将上面替换代码的$add改成你自己的!
卓越飞翔博客
上一篇: 卸载联想驱动管家后蓝屏不开机,蓝屏报0xc0000001
下一篇: 华硕天选5pro 电脑开机wifi图标没了,找不到wifi
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏