PHP中的函数split()已被弃用?

14
$stringText = "[TEST-1] test task 1 Created: 06/Apr/11  Updated: 06/Apr/11"; 
$splitArray = split(" ",$stringText);

警告:在C:\wamp\www\RSS.php的第27行中,函数split()已被弃用(Deprecated)。

为什么会出现这个错误?


8
http://php.net/manual/en/function.split.php - 请在此之前阅读文档,避免在此提问。 - Mat
请在您的php.ini文件中启用html_errorsdocref_root - mario
可能是PHP split alternative?的重复问题。 - Wesley Murch
6个回答

36

http://php.net/manual/zh/function.split.php

来自手册:

警告 该函数已于 PHP 5.3.0 中弃用,强烈不建议使用该特性。

注意:

从 PHP 5.3.0 开始,正则表达式扩展被弃用,取而代之的是 PCRE 扩展。调用此函数将发出 E_DEPRECATED 提示。有关转换为 PCRE 的帮助,请参见差异列表。

我想你应该使用替代函数 preg_split()。或者如果您没有使用正则表达式,则可以使用 explode 函数。


9

split已被替换为explode,请参见http://php.net/explode了解更多信息。与split相同的工作方式,但是split已经被“弃用”,这基本上意味着它是一个不应再使用的旧函数,并且不太可能出现在以后的php版本中。


7
实际上,“split”和“explode”有一些不同。 “explode”不支持正则表达式,因此替换函数应该是“preg_split”。 - JohnP

6
使用以下 explode 函数:
$command = explode(" ", $tag[1]);

这是这种情况的标准解决方案。它完美地发挥作用。

3

1
因为该函数已被弃用了?您可以自定义 error_reporting 级别来不记录/显示被弃用的错误。但最好的方法是直接修复问题(比如,对于上面所做的简单分割,应使用 explode 而不是 split)。

0

你可以使用这个自定义函数来处理旧代码:

if (!function_exists('split')) {
    function split($pattern, $subject, $limit=-1, $flags=0){
        return preg_split($pattern, $subject, $limit, $flags);
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接