2012-10-25 107 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函數,它也會給你相同的結果,而不需要解析和標記正則表達式。