問題緣由:網站剛更換了服務器,php之前用的isapi模式,如今用的php 5.3.6.0的Fast CGI模式。php
網上查了下,在php5.3中,正則函數ereg_replace已經廢棄,而dedecms還繼續用,這裏的這個錯誤緣由就是函數ereg_replace在 PHP5.3 中已經不建議使用了。sql
下述是不建議使用的Function (POSIX), 與建議替換成的Function (PCRE) 列表, 詳可見: PHP: Differences from POSIX regexapi
* POSIX → PCRE
* ereg_replace() → preg_replace()
* ereg() → preg_match()
* eregi_replace() → preg_replace()
* eregi() → preg_match()
* split() → preg_split()
* spliti() → preg_split()
* sql_regcase() → No equivalent服務器
解決方法:函數
方法一:網站
把php版本換到v5.3下ui
方法二:spa
繼續使用v5.3,修改php.ini文件
;extension=php_mbstring.dll
改成
extension=php_mbstring.dllstring
;mbstring.func_overload = 0
修改成:
mbstring.func_overload = 7
it
方法三:
修改dedeconfig.php
第二行內容
define('DEDEADMIN', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) );
爲下面任意一個
①define('DEDEADMIN', str_replace("\\", '/', dirname(__FILE__) ) );
②define('DEDEADMIN',strtr(dirname(__FILE__),'\\/','//'));
③define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/", "/", dirname(__FILE__) ) );
建議使用方法三中的③ !