修复方法:
错误分析:
通过报错的位置我们找到对应的源文件代码,可知是因为content模块下关键词处理函数keyword方法中的中使用了已经过时的php函数split引起的。
解决办法:
找到 phpcms/modules/content/fields/keyword/update.inc.php文件,将大约第5行:$data = split('[ ,]', $value);
一句替换成:$data = preg_split('[ ,]', $value);
相关知识点:
函数split()在 PHP5.3 中已经不建议使用了。
PHP5.3 split() 不建议使用的原因:
PHP 5.3.0 之后的regex, 希望使用PCRE 的规格, POSIX 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 的快很多)