Risposte:
explodeè un'alternativa. Tuttavia, se intendevi suddividere tramite un'espressione regolare , l'alternativa è preg_splitinvece.
splitmetodo non accetta sempre espressioni regolari. In .NET, Python, i metodi String.Split()/ str.split()accettano solo una stringa letterale fissa come ago. Quindi, explodeè corretto. Per chi proviene da Java, JavaScript, Ruby, preg_splitpotrebbe essere la soluzione.
splitè deprecato poiché fa parte della famiglia di funzioni che fanno uso di espressioni regolari POSIX; l'intera famiglia è sconsigliata a favore delle preg_*funzioni PCRE ( ).
Se non hai bisogno della funzionalità delle espressioni regolari, allora explodeè un'ottima scelta (e sarebbe stata consigliata splitanche se non fosse deprecata), se d'altra parte hai bisogno di usare espressioni regolari, allora l'alternativa PCRE è semplicemente preg_split.
preg_split se hai bisogno di dividere per espressioni regolari. str_split se hai bisogno di dividere per caratteri. explode se hai bisogno di dividere per qualcosa di semplice.Anche per il futuro, se vuoi sapere cosa PHP vuole che tu usi se qualcosa è deprecato, puoi sempre controllare la funzione nel manuale e ti dirà delle alternative.
Voglio chiarire qui che preg_split();è lontano da esso ma explode();può essere utilizzato in modo simile asplit();
di seguito è riportato il confronto tra split();e explode();utilizzo
<?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
Ecco come possiamo usarlo :)
Puoi invece usare la funzione più semplice preg_match, è migliore e più veloce di tutte le altre.
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
Produzione: Get this var
Sì, userei explode oppure potresti usare:
preg_split
Qual è il metodo consigliato con PHP 6. Documentazione preg_split
Ho avuto lo stesso problema, ma il mio codice deve funzionare sia su PHP 5 che su PHP 7 ..
Ecco il mio pezzo di codice, che ha risolto questo problema .. Inserisci una data in formato dmY con uno dei delimitatori "/. -"
<?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;
}
}
?>
explodenon è l'alternativa, poiché non svolge la stessa funzione displit, cioè: dividere una stringa con un'espressione regolare . A tale scopo, usapreg_split.