PHP告诉我不推荐拆分,我应该使用哪种替代方法?
答案 0 :(得分:125)
explode
是另类选择。但是,如果您打算通过 正则表达式 进行拆分,则可选择 preg_split
。
答案 1 :(得分:22)
split
已弃用,因为它是使用POSIX正则表达式的函数族的一部分;不推荐使用整个系列来支持PCRE(preg_*
)函数。
如果你不需要正则表达式功能,那么explode
是一个非常好的选择(如果不被弃用的话,推荐使用split
),如果另一方面你确实需要使用正则表达式,然后PCRE替代只是preg_split
。
答案 2 :(得分:16)
preg_split
如果您需要按正则表达式拆分。 str_split
如果您需要按字符拆分。 explode
如果您需要通过简单的事情进行拆分。同样对于未来,如果你想知道PHP希望你在不推荐使用什么时使用,你可以随时查看手册中的function,它会告诉你替代方案。
答案 3 :(得分:6)
我想在此清楚preg_split();
远离它,但explode();
可以与split();
以下是split();
和explode();
用法
<?php
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo $month; // foo
echo $day; // *
echo $year;
?>
网址:http://php.net/manual/en/function.split.php
<?php
$data = "04/30/1973";
list($month, $day, $year) = explode("/", $data);
echo $month; // foo
echo $day; // *
echo $year;
?>
网址:http://php.net/manual/en/function.explode.php
以下是我们如何使用它:)
答案 4 :(得分:2)
您可以使用更简单的函数preg_match,它比所有其他函数更好,更快。
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
输出:Get this var
答案 5 :(得分:1)
答案 6 :(得分:0)
如果要将字符串拆分为单词,可以使用explode()或str_word_count()。
答案 7 :(得分:0)
有同样的问题,但是我的代码必须同时在PHP 5和PHP 7上运行。
这是我的代码,它解决了此问题。.以dmY格式输入日期,并带有定界符“ /。-”
<?php
function DateToEN($date){
if ($date!=""){
list($d, $m, $y) = function_exists("split") ? split("[/.-]", $date) : preg_split("/[\/\.\-]+/", $date);
return $y."-".$m."-".$d;
}else{
return false;
}
}
?>