我正在升级我的PHP脚本以使用mysqli,它需要更改变量已交换位置的数千行。例如:
mysql_query($query, $db)
现在必须成为
mysqli_query($db, $query)
正则表达式是快速更改数千行的最佳方法吗?如果是这样,有人可以帮我创建正则表达式来交换这些吗?我已经更改了mysqli的函数调用,但函数参数交换超出了我的查找/替换技能。
我正在使用Visual Studio 2015查找/替换。
答案 0 :(得分:0)
我认为它不需要在沙盒中使用正则表达式
打开每个文件并搜索mysql_query($ query,$ db) 每次遇到字符串运行 str_replace(' mysql_query($ query,$ db)',' mysqli_query($ db,$ query)',' mysql_query($ query,$ db)&# 39;);
$test = 'mysql_query($query, $db)';
echo str_replace($test,'mysqli_query($db, $query)', 'mysql_query($query, $db)' );
echo $test;
答案 1 :(得分:0)
替换
mysql_query\s*\((\$\w+),\s*(\$\w+)\);
使用:
mysqli_query($2, $1);
正则表达式中的非转义括号会创建捕获组,替换中的$1
和$2
会选择匹配的内容。
这仅适用于您发布的语句,其中查询是变量,因为\$\w+
只匹配变量名称。如果您有像
mysql_query("SELECT ...", $db);