我需要编写一个函数,该函数接受一个长字符串,这是一个sql命令,并搜索等号回到它前面的单词,并在它之前添加"post."。
例:
输入:
$sqlFilter = "WHERE sport = 'Hockey' AND team = 'New York Rangers';
输出:
$sqlFilter = "WHERE post.sport = 'Hockey' AND post.team = 'New York Rangers';
你不需要
写任何函数,因为你有一个preg_replace
。
您需要添加此代码
$newSqlFilter = preg_replace('/([^('s]*?)[ ]{0,}=/', 'post.'0', $sqlFilter);
另一件事 - 用"
字符关闭查询字符串。
您可以使用正则表达式搜索模式,使用函数 preg_replace_callback(),该函数接受回调方法名称进行替换。使用表达式查找所需的模式,并使用回调方法进行替换。
阅读更多关于这里http://php.net/manual/en/function.preg-replace-callback.php