我是php的新手,我试图创建一个BBcode,但它给了我这个错误:
警告:preg_replace():找不到结束分隔符'@'
我做的代码:
function bbCode($str){
$values = array(
'@\[b]\(.*?)\[\/b]\@i' => '<b>$1</b>',
'@\[i]\(.*?)\[\/i]\@i' => '<em>$1</em>'
);
return preg_replace(array_keys($values), array_values($values), $str);
}
它出了什么问题?
答案 0 :(得分:0)
使用@
转义最后一个\@
符号,因此php将@解释为文字@而不是分隔字符。
编辑:
function bbCode($str)
{
$values = array(
'@\[b\](.*?)\[\/b\]@i' => '<b>$1</b>',
'@\[i\](.*?)\[\/i\]@i' => '<em>$1</em>'
);
return preg_replace(array_keys($values), array_values($values), $str);
}