解决DedeCMS出现Deprecated: Function ereg_replace()错误的问题

2010-09-19 14:17:21来源:西部e网作者:

  针对于安装完成后出现安装完出现Deprecated: Function ereg_replace() is deprecated in

  针对于安装完成后出现安装完出现Deprecated: Function ereg_replace() is deprecated in

  dedecms由于技术人员的习惯问题可能针对php5.3甚至更高版本的php支持会有些错误,大家可以打开文件dede/config.php

  找到define('DEDEADMIN', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) );

  没有必要删除,只要在这句前面加入"//"将其隐掉就好了,然后在下面加一句

  define('DEDEADMIN',strtr(dirname(__FILE__),'\\/','//'));

  就可以了!上传覆盖,然后更新下在看看,应该解决问题老!

  对以上操作正则表达式的解释如下:

  在正则表达式中,反斜线通常与其它字符一起构成特殊的结构,譬如‘\d’用来匹配数字字符,‘\s’用来匹配空白字符,‘\1’用来反向引用第一个分组捕获的文本。

  可是,如果我们在正则表达式中,仅仅需要表示%26ldquo;反斜线%26rdquo;字符本身,该如何做呢?

  其实,正则表达式对这个问题的处理,与字符串的处理是一样的,也就是说,在正则表达式中,必须用转义序列‘\\’来表示单个反斜线。

  这个规定会带来一个有趣的问题:正则表达式中单独出现的反斜线字符,在正则表达式的层面,必须以转义序列‘\\’来表示,然而,每个反斜线,在表示正则表达式的字符串中,又必须以转义序列‘\\’来表示。所以,在字符串中,必须写出四个反斜线‘\\\\’,才能对应到正则表达式中单独出现的一个反斜线字符:在字符串处理层面,它们会被识别为两个反斜线‘\\’,在正则表达式的层面,它们会被识别为单个反斜线字符‘\’。

赞助商链接: