春节终于过去了,回来直接上班一周,总算可以缓口气过个周末了。顺便写下农历新年第一篇。

回归正题,虽然是元宵节+情人节,晚上依照惯例登上服务器看看博客,才想起年前博客因为迁移VPS出问题,暂时放回了早些时候用的虚拟主机,上去一看,发现5G的网站空间居然占满了,回想之前遇到过哦 1G多错误日志的情况,仔细一看,还真是php的error.log。足足4G+的大小,果断删了,过了一会在刷新,出现新的错误文件,打开发现有plugins/duoshuo/WordPress.php on line 439错误十几行,以为是多说的问题,搜了下才知道,原来是新版php不建议使用split的缘故。可能虚拟机的服务商把php升级了,所以出现这样的问题。而之前是自己配的VPS,用的还是5.2,。

下面是找到的资料,顺手也罗列出来,供大家参考。

PHP5.3 split() 不建议使用的原因:

PHP 5.3.0 之后的regex, 希望使用PCRE 的规格, POSIX Regex 都不建议使用了(统一Regex, 避免规格太多)

所以下述是不建议使用的Function (POSIX), 与建议替换成的Function (PCRE) 列表, 详可见: PHP: Differences from POSIX regex

* 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 split() 替代方案
* 需要regex 的split, 可用preg_split() 代替
* 不需要regex, 只要要快速分割固定的字串, 可用explode() 代替. (速度会比需要regex 的快很多)

找到问题,果断手动修改多说的文件,再刷新,问题没了。不过话说回来,多说官方最近貌似很久没更新了,对于版本不兼容的小bug也不知道及时升级?曾经日夜奋战的小武,如今去哪里了?