php升级问题
2011-03-01    刘世伟   
打印自: 安恒公司
地址: HTTP://ciq-gsv.anheng.com.cn/news/article.php?articleid=2308
php升级问题
php升级到5.3, 开始提示某些函数过期, 碰到的有:

1.
-set_magic_quotes_runtime(0);
直接去掉就行.

2.
-session_register()
 直接去掉, 然后需要用到session的xxxx变量的地方, 全部用 $_SESSION[xxxx]来访问.

3.session_unregister()函数,修改例子:
-session_unregister("userset");
+unset($_SESSION[userset]);

4.eregi_replace()函数,
 如果是简单的不需要正则的, 可以用strtr来替换,例如
 -$dateformat = eregi_replace("mm", "n", $dateformat);
 -$dateformat = eregi_replace("dd", "j", $dateformat);
 -$dateformat = eregi_replace("yyyy", "Y", $dateformat);
 -$dateformat = eregi_replace("yy", "y", $dateformat);
 +$dateformat=strtr($dateformat,array('mm'=>'n','dd'=>'d','yyyy'=>'Y','yy'=>'y'));

 带正则的, 要调整一下, 然后用preg_replace来替换:

 -$message = eregi_replace('[color=([^]]*)]([^[]*)[/color]', '<font color="\1">\2</font>',$message);
 +$message = preg_replace('/[color=([^]]*)]([^[]*)[\/color]/is', '<font color="\1">\2</font>',$message);

5.ereg_replace()函数, 跟上一个一样,用preg_replace来替换:

 -$message = ereg_replace('[color=([^]]*)]([^[]*)[/color]', '<font color="\1">\2</font>',$message);
 +$message = preg_replace('/[color=([^]]*)]([^[]*)[\/color]/s', '<font color="\1">\2</font>',$message);

6.eregi()和ereg()
 
用 preg_match()代替,
-eregi('ast',$msg);
+preg_match('/ast/is',$msg);

-ereg('ast',$msg);
+preg_match('/ast/',$msg);


责任编辑: admin