PHP me dice que la división está obsoleta, ¿cuál es el método alternativo que debería usar?
Respuestas:
explodees una alternativa. Sin embargo, si pretendía dividir una expresión regular , la alternativa es preg_split.
splitmétodo no siempre acepta expresiones regulares. En .NET, Python, los métodos String.Split()/ str.split()solo aceptan una cadena literal fija como una aguja. Por tanto, explodees correcto. Para aquellos que vienen de Java, JavaScript, Ruby, preg_splitpodrían resultar la solución.
splitestá en desuso ya que es parte de la familia de funciones que utilizan expresiones regulares POSIX; esa familia entera está en desuso a favor de las preg_*funciones PCRE ( ).
Si no necesita la funcionalidad de expresión regular, entonces explodees una muy buena opción (y se habría recomendado splitincluso si no estuviera en desuso), si por otro lado necesita usar expresiones regulares, entonces la alternativa PCRE es simplemente preg_split.
preg_split si necesita dividir por expresiones regulares. str_split si necesita dividir por caracteres. explode si necesita dividir por algo simple.También para el futuro, si alguna vez desea saber qué PHP quiere que use si algo está obsoleto, siempre puede consultar la función en el manual y le indicará las alternativas.
Quiero aclarar aquí que preg_split();está muy lejos de eso, pero explode();se puede usar de manera similar asplit();
la siguiente es la comparación entre split();y el explode();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
Así es como podemos usarlo :)
En su lugar, puede usar la función preg_match más fácil, es mejor y más rápida que todas las demás.
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
Salida: Get this var
Sí, usaría explotar o podrías usar:
preg_split
¿Cuál es el método recomendado con PHP 6. preg_split Documentation
Tuve el mismo problema, pero mi código debe funcionar tanto en PHP 5 como en PHP 7 ..
Aquí está mi pieza de código, que resolvió esto .. Ingrese una fecha en formato dmY con uno de los 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;
}
}
?>
explodeno es la alternativa, ya que no realiza la misma función quesplit, es decir: dividir una cadena por una expresión regular . Para ese propósito, usepreg_split.