Explotar se utiliza para dividir fácilmente una cadena por un separador.
Soporte de PHP 4 y posterior |
---|
Breve descripción |
Requisitos: Ninguno |
Nota |
A menudo necesitamos dividir una cadena según alguna regla sencilla. Por ejemplo, una lista de números separados por comas.
La función explode() es genial para esto, ya que toma el separador (que separa la cadena) como primer parámetro y los datos en sí como segundo parámetro:
$cisla = '3, 1, 4, 1, 5, 9';$parser = explode(',', $cisla);foreach ($parser as $cislo) {echo $cislo . '<br>';// Aquí podemos procesar más los números}
¿Pero qué pasa si los números están separados por comas, pero hay espacios alrededor?
La solución es analizar por la subcadena común más pequeña y luego eliminar los caracteres no deseados a su alrededor (espacios y otros espacios en blanco):
$cisla = '3, 1,4, 1 , 5 ,9';$parser = explode(',', $cisla);foreach ($parser as $cislo) {echo trim($cislo) . '<br>';// Aquí podemos procesar más los números}
En este caso, la función trim()
elimina elegantemente los espacios en blanco alrededor de los caracteres (espacios, tabulaciones, saltos de línea, ...), dando sólo datos limpios.
CONSEJO: Para muchos ejemplos, explode() no es adecuado y es mucho mejor utilizar expresiones regulares.
Sin embargo, a menudo sólo queremos analizar los datos hasta una determinada distancia, y el tercer parámetro (opcional) límite se puede utilizar para este propósito.
Por ejemplo, tengamos datos estructurados separados por dos puntos en los que queremos obtener el contenido después de los primeros dos puntos e ignorar los demás. Ejemplo:
$cas = 'formato: "j.n.Y - H:i"';
Si tuviéramos que analizar la cadena sólo como:
$parser = explode(':', $cas);
Obtendríamos estas 3 subcadenas (en otros casos podría haber muchas más):
'formato''"j.n.Y - H''i"'
Por lo tanto, establecemos un límite a la cantidad de elementos a obtener (y posiblemente todos los demás se añadirán al final del último elemento):
$parser = explode(':', $cas, 2);// Vuelve:echo $parser[0]; // formatoecho $parser[1]; // "j.n.Y - H:i"
Nota: Las comillas no deseadas pueden eliminarse de la cadena, por ejemplo, utilizando la función
trim()
:
echo trim($parser[1], '"'); // el segundo parámetro especifica el mapa de caracteres a eliminar
A menudo necesitamos recuperar una cadena que está delimitada por otras dos cadenas. No hay una función para esto directamente en PHP, pero podemos escribirla nosotros mismos:
function between(string $left, string $right, string $data): string{$l = explode($left, $data);$r = explode($right, $l[1]);return $r[0];}
Se puede lograr una división mucho más elegante y trabajar con cadenas utilizando expresiones regulares, de las que hablo en una página aparte.
$ip = '10.0.0.138';$parser = explode('.', $ip);echo $parser[0]; // imprime "10"echo $parser[1]; // imprime "0";
La variable $ip
contiene una cadena de entrada que se analiza según el delimitador .
, el retorno es un array. El análisis continúa hasta el final de la cadena a menos que se especifique un límite.
# | Tipo | Descripción |
---|---|---|
1 | cadena | Cadena de separación. |
2. Cadena. Cadena analizada. | ||
3. Límite de análisis. Este es un parámetro opcional. Ejemplo: |
$text = 'PHP es mi lenguaje favorito.';$parser = explode('', $text, 1);echo $parser[0]; // imprime la primera palabraecho $parser[1]; // imprime el resto del textoecho $parser[2]; // ¡no sale nada porque se ha establecido un límite!
El valor de retorno es un array con una cadena analizada.
Los índices se numeran de cero a X
a menos que se especifique un límite.
Versión de PHP Descripción |
---|
5.1.0 |
Se ha añadido el parámetro opcional limit. |
Cuando se utiliza un límite negativo, se da el número de elementos desde el final de la cadena.
Ejemplo:
$str = 'uno|dos|tres|cuatro';// límite positivoprint_r(explode('|', $str, 2));// límite negativo (desde PHP 5.1)print_r(explode('|', $str, -1));
Se devolverán los siguientes campos:
Array([0] => one[1] => two|three|four)Array([0] => one[1] => two[2] => three)
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | es