我面前有一个网站,其中包含2500个会话变量,其中大部分标记为没有引号(显然不是我的工作......)。 例如
$_SESSION[var]
而不是
$_SESSION['var']
现在,我必须更改所有2500个以确保它们有引号。我知道我将不得不编写一些PHP来遍历每个文件并检查每个会话变量。我可能会使用preg_match,但我不确定我需要的正则表达式。当我找到没有引用的那些时,我将不得不去str_replace,除非有人能想出更好的方法吗?
有人知道吗?手动不能这样做,它可能会杀了我! :)干杯
答案 0 :(得分:0)
尝试:
$yourCodeWhereYouNeedToReplace = file_get_contents('awfulCode.php'); //:P
preg_replace_callback('/_SESSION\[(\w+)\]/',
function ($matches)
{ return '_SESSION[\''.$matches[1].'\']'; },
$yourCodeWhereYouNeedToReplace);
修改:如果您想将所有\[(\w+)\]
替换为[key]
,也可以使用模式['key']
。