我有一个非常老的php4-5项目,需要迁移到php7.2
它有很多代码,例如:
echo '<img src="img/'.$r[imgurl1].'"
strip_tags($r[details])
现在位于我的本地ubuntu 18 apache&php-server中。 如何搜索和替换所有.php文件以添加引号? 当然,如果[]中包含$(变量)符号,则不能添加双引号 并且如果它已经包含“或”
我对预浸料了解很少,但还不够。 我有崇高的text3和notepad ++,如果现在只有正确的正则表达式,它们也可以代替。请帮忙!
答案 0 :(得分:1)
\$\w+\[\K([^$"'\]]+)
"$1"
说明:
\$ # $ sign
\w+ # 1 or more word characters
\[ # opening square bracket
\K # forget all we have seen until this position
( # start group 1
[^$"'\]]+ # 1 or more any character that is not $, ", ', ]
) # end group
给出:
echo '<img src="img/'.$r[imgurl1].'"
strip_tags($r[details])
$abc = $def[$xxx]
给定示例的结果
echo '<img src="img/'.$r["imgurl1"].'"
strip_tags($r["details"])
$abc = $def[$xxx]
$in = <<<'EOD'
echo '<img src="img/'.$r[imgurl1].'"
strip_tags($r[details])
$abc = $def[$xxx]
EOD;
$res = preg_replace('/\$\w+\[\K([^$"\'\]]+)/', '"$1"', $in);
echo $res;
输出:
echo '<img src="img/'.$r["imgurl1"].'"
strip_tags($r["details"])
$abc = $def[$xxx]
答案 1 :(得分:0)
是的,这对您有所帮助! 它还与$ array [12]匹配,这意味着数字也被引用了。 从irc得知这是可行的解决方案:
for (int i = 0; br.readLine() != null; i++) {