解决方案 »

  1.   

    由于方法preg_replace()为PHP 5.5.x 中废弃的特性,官方建议需要在代码中将preg_replace()替换为函数preg_replace_callback,可以问题解决。
    是你的php版本过高
      

  2.   

    $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) {return chr(hexdec($m[1])); }, $rdn);
      

  3.   


    修改后又报下面的错误
    Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'Closure' is not allowed' in /usr/local/httpd/phpldapadmin/lib/functions.php:615 Stack trace: #0 /usr/local/httpd/phpldapadmin/lib/functions.php(615): serialize(Array) #1 /usr/local/httpd/phpldapadmin/lib/functions.php(184): error('E_WARNING: preg...', 'error', NULL, true, true) #2 [internal function]: app_error_handler(2, 'preg_replace_ca...', '/usr/local/http...', 2572, Array) #3 /usr/local/httpd/phpldapadmin/lib/functions.php(2572): preg_replace_callback('/\\([0-9A-Fa-f]...', Object(Closure), 'dc=gs') #4 /usr/local/httpd/phpldapadmin/lib/functions.php(2525): dn_unescape(Array) #5 /usr/local/httpd/phpldapadmin/lib/Tree.php(135): pla_explode_dn('dc=gs,dc=com') #6 /usr/local/httpd/phpldapadmin/lib/Tree.php(173): Tree->indexDN('dc=gs,dc=com') #7 /usr/local/httpd/phpldapadmin/lib/Tree.php(62): Tree->addEntry('dc=gs,dc=com') #8 /usr/local/httpd/phpldapadmin/lib/page.php(227): Tree::getInstance(1) #9 /usr/local/httpd/phpldapadmin/lib/page.php(418): pag in /usr/local/httpd/phpldapadmin/lib/functions.php on line 615
    这个不是我编写的程序,是开源  phpLDAPadmin中的
      

  4.   

    /\\\([0-9A-Fa-f]{2})/正则错了吧,括号是字符串里面的还是写正则用的括号
    /\\([0-9A-Fa-f]{2})/或者/\\\([0-9A-Fa-f]{2}\)/
      

  5.   

    $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
                '/{nocache}(.+?){\/nocache}/ise', //无缓存模块
                );
            $replace = array(
                '\1',
                '',
                '\1\2\3',
                '\1' . $tmp_dir . '\2',
                '\1' . $tmp_dir . '\2',
                "'{insert name=\"nocache\" ' . '" . $this->_echash . "' . base64_encode('\\1') . '}'",
                );        return preg_replace($pattern, $replace, $source);这样的怎么修改成 preg_replace_callback