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