查找未加引号的字符串并使用正则表达式引用它们

时间:2013-01-08 09:16:29

标签: php preg-match

我面前有一个网站,其中包含2500个会话变量,其中大部分标记为没有引号(显然不是我的工作......)。 例如

$_SESSION[var]

而不是

$_SESSION['var']

现在,我必须更改所有2500个以确保它们有引号。我知道我将不得不编写一些PHP来遍历每个文件并检查每个会话变量。我可能会使用preg_match,但我不确定我需要的正则表达式。当我找到没有引用的那些时,我将不得不去str_replace,除非有人能想出更好的方法吗?

有人知道吗?手动不能这样做,它可能会杀了我! :)干杯

1 个答案:

答案 0 :(得分:0)

尝试:

$yourCodeWhereYouNeedToReplace = file_get_contents('awfulCode.php'); //:P
preg_replace_callback('/_SESSION\[(\w+)\]/',
                      function ($matches)
                      { return '_SESSION[\''.$matches[1].'\']'; },
                      $yourCodeWhereYouNeedToReplace);

修改:如果您想将所有\[(\w+)\]替换为[key],也可以使用模式['key']