使用不带引号的数组键,如何在大项目中修复它?
Using arrays keys without quotes, how to fix it on big project?
我开始了一个项目,使用了很多不带引号的数组键。
现在我用这个方法有问题,当我开始我的项目时我不知道它很糟糕。由于某些原因,我最终想显示 E_NOTICES 错误,但它崩溃了,因为日志超载了数百万条通知,例如 PHP Notice: Use of undefined constant message - assumed 'key'
。
所以要修复它,我可以在我的整个项目中为我的键添加引号,但是有太多了!有没有办法通过算法或任何修复我的代码的方法来实现这一点?我想用带引号的字符串替换任何未定义的常量,例如:
$my_array[key]
来自 $my_array['key']
。
谢谢。
编辑:
我成功地使用 rejex 修复了所有声明,如下所示:
\[([^0-9$\'\"\]])([^\'\"\]]*)\]
到 \[\'\'\]
但这还不够,很多情况下使用不带括号的不带引号的键,EG:
array_key_exists(unquotedKey,$array)
$array['key'] = array( unquotedKey => array(96,56) );
等...
我可以使用正则表达式解决所有情况,但我想我会遇到很多麻烦才能很好地处理它,有时我的数组的键实际上是常量,不应该被引用!如果有人有更好的解决方案,那将对我有很大帮助。
完美的解决方案是在 PHP 用带引号的字符串 替换未定义常量后能够 获取我的代码,这可能吗?每次我编译它都会这样做,它可能会暂时存储在某个地方。
我使用 Notepad++,它具有在文件中搜索和替换的功能 (Ctrl + Shift + F)。打开正则表达式模式,您可以使用
搜索:
$my_array\[([^\'\"]+)\]
替换
$my_array\[\'\'\]
搜索在数组键方括号内查找任何不存在 " 或 ' 字符的内容,这表明声明已经有效。
Select 你项目的目录然后点击 "Replace in Files"。确保首先备份您的整个项目,以防出现问题。
使用这个模式
[a-zA-Z0-9]{1,}(\[([^'"[=10=]-9]+)\])
查找不带引号的数组键,如下所示:
$_POST[content_id]
我开始了一个项目,使用了很多不带引号的数组键。
现在我用这个方法有问题,当我开始我的项目时我不知道它很糟糕。由于某些原因,我最终想显示 E_NOTICES 错误,但它崩溃了,因为日志超载了数百万条通知,例如 PHP Notice: Use of undefined constant message - assumed 'key'
。
所以要修复它,我可以在我的整个项目中为我的键添加引号,但是有太多了!有没有办法通过算法或任何修复我的代码的方法来实现这一点?我想用带引号的字符串替换任何未定义的常量,例如:
$my_array[key]
来自 $my_array['key']
。
谢谢。
编辑: 我成功地使用 rejex 修复了所有声明,如下所示:
\[([^0-9$\'\"\]])([^\'\"\]]*)\]
到 \[\'\'\]
但这还不够,很多情况下使用不带括号的不带引号的键,EG:
array_key_exists(unquotedKey,$array)
$array['key'] = array( unquotedKey => array(96,56) );
等...
我可以使用正则表达式解决所有情况,但我想我会遇到很多麻烦才能很好地处理它,有时我的数组的键实际上是常量,不应该被引用!如果有人有更好的解决方案,那将对我有很大帮助。
完美的解决方案是在 PHP 用带引号的字符串 替换未定义常量后能够 获取我的代码,这可能吗?每次我编译它都会这样做,它可能会暂时存储在某个地方。
我使用 Notepad++,它具有在文件中搜索和替换的功能 (Ctrl + Shift + F)。打开正则表达式模式,您可以使用
搜索:
$my_array\[([^\'\"]+)\]
替换
$my_array\[\'\'\]
搜索在数组键方括号内查找任何不存在 " 或 ' 字符的内容,这表明声明已经有效。
Select 你项目的目录然后点击 "Replace in Files"。确保首先备份您的整个项目,以防出现问题。
使用这个模式
[a-zA-Z0-9]{1,}(\[([^'"[=10=]-9]+)\])
查找不带引号的数组键,如下所示:
$_POST[content_id]