安装dede5.5uft出现Deprecated: Function ereg_replace() is deprecated in F:\wamp\www1\dede\config.php on line 2服务器是WampServer2.0i好像WampServer2.0c没这个问题
<?php
define('DEDEADMIN', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) );
require_once(DEDEADMIN.'/../include/common.inc.php');
require_once(DEDEINC.'/userlogin.class.php');
header('Cache-Control:private');
$dsql->safeCheck = false;
$dsql->SetLongLink();//获得当前脚本名称,如果你的系统被禁用了$_SERVER变量,请自行更改这个选项
$dedeNowurl = $s_scriptName = '';
$isUrlOpen = @ini_get('allow_url_fopen');
$dedeNowurl = GetCurUrl();
$dedeNowurls = explode('?', $dedeNowurl);
$s_scriptName = $dedeNowurls[0];//检验用户登录状态
$cuserLogin = new userLogin();
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
if($cfg_dede_log=='Y')
{
$s_nologfile = '_main|_list';
$s_needlogfile = 'sys_|file_';
$s_method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '';
$s_query = isset($dedeNowurls[1]) ? $dedeNowurls[1] : '';
$s_scriptNames = explode('/',$s_scriptName);
$s_scriptNames = $s_scriptNames[count($s_scriptNames)-1];
$s_userip = GetIP();
if( $s_method=='POST' || (!eregi($s_nologfile,$s_scriptNames) && $s_query!='') || eregi($s_needlogfile,$s_scriptNames) )
{
$inquery = "INSERT INTO `#@__log`(adminid,filename,method,query,cip,dtime)
             VALUES ('".$cuserLogin->getUserID()."','{$s_scriptNames}','{$s_method}','".addslashes($s_query)."','{$s_userip}','".time()."');";
$dsql->ExecuteNoneQuery($inquery);
}
}//管理缓存、管理员频道缓存
$cache1 = DEDEDATA.'/cache/inc_catalog_base.inc';
if(!file_exists($cache1)) UpDateCatCache();
$cacheFile = DEDEDATA.'/cache/admincat_'.$cuserLogin->userID.'.inc';
if(file_exists($cacheFile)) require_once($cacheFile);//更新栏目缓存
function UpDateCatCache()
{
global $dsql, $cfg_multi_site, $cache1, $cacheFile, $cuserLogin;
$cache2 = DEDEDATA.'/cache/channelsonlist.inc';
$cache3 = DEDEDATA.'/cache/channeltoplist.inc';
$dsql->SetQuery("Select id,reid,channeltype,issend From `#@__arctype`");
$dsql->Execute();
$fp1 = fopen($cache1,'w');
$phph = '?';
$fp1Header = "<{$phph}php\r\nglobal \$_Cs;\r\n\$_Cs=array();\r\n";
fwrite($fp1,$fp1Header);
while($row=$dsql->GetObject())
{
fwrite($fp1,"\$_Cs[{$row->id}]=array({$row->reid},{$row->channeltype},{$row->issend});\r\n");
}
fwrite($fp1,"{$phph}>");
fclose($fp1);
$cuserLogin->ReWriteAdminChannel();
@unlink($cache2);
@unlink($cache3);
}function DedeInclude($filename,$isabs=false)
{
return $isabs ? $filename : DEDEADMIN.'/'.$filename;
}?>
麻烦高手解决一下
谢谢

解决方案 »

  1.   

    define('DEDEADMIN', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) );
    //改为
    define('DEDEADMIN', preg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) );因为preg_replace比ereg_replace的执行速度快,PHP推荐使用preg_replace.
      

  2.   

    Warning: preg_replace() [function.preg-replace]: No ending matching delimiter ']' found in F:\wamp\www\dede\config.php on line 2是不是不支持正则呢要开启什么才支持
    还是那的问题
      

  3.   

    信息提示是不推荐使用ereg_replace(),你加个@看能不能屏蔽掉,@ereg_replace(...)。
    不行的话,改改咯。
    1.define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/", '/', dirname(__FILE__) ) );
    2.define('DEDEADMIN',strtr(dirname(__FILE__),'\\/','//'));
      

  4.   

    1.define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/", '/', dirname(__FILE__) ) ); 
    2.define('DEDEADMIN',strtr(dirname(__FILE__),'\\/','//')); 可以了谢谢
    不报错!
    不明白这正则是干什么的
      

  5.   

    只替换了一行
    1.define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/", '/', dirname(__FILE__) ) ); 
    报错就没有了不知道为什么
    愿听解释?
      

  6.   

    这个问题是因为你用的php版本过高。
    在php5.3中,正则函数ereg_replace已经废弃,而dedecms还继续用。有两个方案可以解决以上问题:
    1、把php版本换到v5.3下。
    2、继续使用v5.3,修改php.ini文件
    ;extension=php_mbstring.dll
    改为
    extension=php_mbstring.dll
    ;mbstring.func_overload = 0
    修改为:
    mbstring.func_overload = 7
      

  7.   

    define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/", '/', dirname(__FILE__) ) );  这一句解决问题,
      

  8.   

    moncler doudoune doudoune moncler homme moncler jacken moncler doudoune doudoune moncler homme moncler jacken
      

  9.   

    恩 我去试试  tuanwed.com