我试图制作报价系统,但我如何将preg_replace变量转换为服务器变量?
不明白?,这是剧本!
$input = preg_replace("#\[quote id=(.*?)\]#si", "<blockquote><p>" . $class->functions('\\1') . "</p><p>..</p></blockquote>", $input);
问题:函数在$ mysqli-&gt; real_escape_string()之后不知道\\1
意味着什么并且返回\1
,如果我删除了real_escape_string它仍然说它在数据库中不存在..但它就在那里!!
如何解决这个问题?
答案 0 :(得分:0)
你不能像这样使用反向引用。您需要使用preg_replace_callback,如:
function callback_function($m) {
return "<blockquote><p>" . $class->functions($m[1]) . "</p><p>..</p></blockquote>";
}
preg_replace_callback("#\[quote id=(.*?)\]#si", "callback_function", $input);