php页面报错:preg_replace_callback()不知道怎么解决?

   我的我的ecshop进入index页后就一直报错:Warning: preg_replace_callback(): Requires argument 2, 'Array', to be a valid callback in C:\AppServ\www\ecshop\includes\cls_template.php on line 1152

        cls_template.php源码如下:

        $pattern = array(
        '/<!--[^>|\n]*?({.+?})[^<|{|\n]*?-->/', // 替换smarty注释
        '/<!--[^<|>|{|\n]*?-->/',               // 替换不换行的html注释
        '/(href=["|\'])\.\.\/(.*?)(["|\'])/i',  // 替换相对链接
        '/((?:background|src)\s*=\s*["|\'])(?:\.\/|\.\.\/)?(images\/.*?["|\'])/is', // 在images前加上 $tmp_dir
        '/((?:background|background-image):\s*?url\()(?:\.\/|\.\.\/)?(images\/)/is', // 在images前加上 $tmp_dir
        '/([\'|"])\.\.\//is', // 以../开头的路径全部修正为空
        );
    $replace = array(
        '\1',
        '',
        '\1\2\3',
        '\1' . $tmp_dir . '\2',
        '\1' . $tmp_dir . '\2',
        '\1'
        );
    //return preg_replace($pattern, $replace, $source);
    return preg_replace_callback($pattern, $replace, $source);

http://www.jb51.net/article/55446.htm