preg_replace():找不到结束分隔符'@'

时间:2013-06-20 08:41:46

标签: php preg-replace bbcode

我是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);
}

它出了什么问题?

1 个答案:

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