Respostas:
explodeé uma alternativa. No entanto, se você pretendia dividir por meio de uma expressão regular , a alternativa é preg_split.
splitmétodo nem sempre aceita expressões regulares. Em .NET, Python, os métodos String.Split()/ str.split()aceitam apenas uma string literal fixa como agulha. Portanto, explodeestá correto. Para quem vem de Java, JavaScript, Ruby, preg_splitpode ser a solução.
splitestá obsoleto por fazer parte da família de funções que fazem uso de expressões regulares POSIX; essa família inteira foi preterida em favor das preg_*funções PCRE ( ).
Se você não precisa da funcionalidade de expressão regular, então explodeé uma escolha muito boa (e teria sido recomendada splitmesmo se não fosse obsoleta), se por outro lado você precisa usar expressões regulares, então a alternativa PCRE é simples preg_split.
preg_split se você precisar dividir por expressões regulares. str_split se você precisar dividir por caracteres. explode se você precisar dividir por algo simples.Também para o futuro, se você quiser saber o que o PHP deseja que você use se algo for descontinuado, você pode sempre verificar a função no manual e ele lhe mostrará alternativas.
Quero esclarecer aqui que preg_split();está longe disso, mas explode();pode ser usado de maneira semelhante asplit();
a seguir está a comparação entre split();eexplode(); uso
<?php
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo $month; // foo
echo $day; // *
echo $year;
?>
URL: 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;
?>
URL: http://php.net/manual/en/function.explode.php
Aqui está como podemos usá-lo :)
Você pode usar a função mais fácil preg_match, é melhor e mais rápida do que todas as outras.
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
Resultado: Get this var
Sim, eu usaria explodir ou você poderia usar:
preg_split
Qual é o método recomendado com PHP 6. preg_split Documentation
Tive o mesmo problema, mas meu código deve funcionar no PHP 5 e no PHP 7.
Aqui está meu código, que resolveu isso .. Insira uma data no formato dmY com um dos delimitadores "/. -"
<?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;
}
}
?>
explodenão é a alternativa, pois não desempenha a mesma função quesplit, ou seja: dividir uma string por uma expressão regular . Para esse propósito, usepreg_split.