服务器变量中的Preg_replace变量

时间:2014-03-25 19:09:16

标签: php preg-replace

我试图制作报价系统,但我如何将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它仍然说它在数据库中不存在..但它就在那里!!

如何解决这个问题?

1 个答案:

答案 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);