2012-10-25 111 views
-3

我在PHP脚本分割功能过时

Deprecated: Function split() is deprecated in directory\filename on line 153 

得到了一个废弃的错误这是错误线

list($ns, $el) = split(':', $element, 2); 

我该如何解决这个问题?我在PHP5.3中运行。

+4

您是否阅读过此函数的[文档](http://php.net/manual/en/function.split.php#refsect1-function.split-notes)? – DCoder

+0

使用preg_split()。 http://www.php.net/manual/en/function.preg-split.php –

+0

如果您想根据正则表达式进行拆分,请使用'preg_split'类似的建议。如果您想基于简单字符进行分割,请使用'explode'。从你那里的例子来说,我会说'爆炸'去。详情请参阅我的回答。 – 9ee1

回答

1

分割函数自PHP 5.3.0开始已被取消。依靠这个功能是非常不鼓励的。您可以使用preg_split,例如preg_split("/[\s,]+/", "hypertext language, programming")。或者你可以使用array explode (string $delimiter , string $string [, int $limit ])例如

//例1 $比萨饼= “piece1 piece2 piece3 piece4 piece5 piece6”;

$ pieces = explode(“”,$ pizza);

echo $ pieces [0]; // piece1

echo $ pieces [1]; // piece2

//示例2 $ data =“foo:*:1023:1000 ::/home/foo:/ bin/sh”;

list($ user,$ pass,$ uid,$ gid,$ gecos,$ home,$ shell)= explode(“:”,$ data);

echo $ user; // foo echo $ pass; // *

1

从PHP 5.3开始,不推荐使用整个REGEX扩展。使用PCRE扩展,它具有功能preg_split,并且几乎会给你相同的结果。看看你的代码片段,你并不需要一个正则表达式来分割该字符串,这是PCRE扩展提供的。

您可以使用explode函数,它也会给你相同的结果,而不需要解析和标记正则表达式。