php7继续试用-preg_replace的e修饰符

应该说在php5.5版本,preg_replace就不支持e修饰符了,需要换成preg_replace_callback函数。大致替换如下:

preg_replace("/..../e","..'\\1'...",$str)
preg_replace_callback("/..../",'func',$str);// 去掉e修饰,第二参数改成回调函数名
function func($match){
return ..$match[1]...;// 就把替换的位置'\\1'换成$match[1]就可以了
}

如果函数在类里要这样写:

preg_replace_callback("/..../",array($this,'func'),$str);

 

php7初体验

PHP7.0.0alpha1已经发布了,之前下了windows的包,丢本机wamp里发现跑不起来,这次下了linux,在测试机上试了一下,编译安装都很顺利,apache改一下配置文件,注释掉LoadModule php5_module,启用LoadModule php7_module        modules/libphp7.so,重启正常。

不过php7不再支持mysql扩展,只能改用mysqli或者mysqlnd,如果机器对mysql模块依赖很重,要谨慎,我是直接把mysql改成mysqli,大部分只要直接替换就可以了,部分函数参数要调换一下,mysqli需要带linkid的函数,默认都是放在第一参数,这个和mysql函数是相反的。

因为是测试机,性能没去研究,代码跑的还算正常,没发现什么问题。