Hoy vamos a ver cómo separar una cadena usando un delimitador en PHP, por ejemplo, una coma, un punto, un espacio, un salto de línea, etcétera.
A la función de separar una cadena a partir de un carácter se le llama split; pero no sé por qué en PHP se llama explode (y tampoco sé por qué en C es strtok) pero bueno.
Veamos cómo separar una cadena usando delimitadores en PHP con la función explode, el equivalente a split en otros lenguajes.
Separar cadena a partir de delimitadores usando PHP
Como lo dije, vamos a usar la función explode.
Para separar la cadena usando un delimitador, la sintaxis es:
$stringSeparado = explode($separador, $cadena);
El separador puede ser cualquier carácter o cadena, por ejemplo una coma, un salto de línea, una tabulación, un guión, etcétera.
Veamos un ejemplo:
<?php
/*
Separar cadena usando delimitadores en PHP
https://parzibyte.me/blog/
*/
$cadena = "Maggie,Panqué,Guayaba";
$separador = ",";
$separada = explode($separador, $cadena);
var_dump($separada);
/*
Salida:
array(3) {
[0]=>
string(6) "Maggie"
[1]=>
string(7) "Panqué"
[2]=>
string(7) "Guayaba"
}
*/
Como puedes ver, explode devuelve un arreglo que después puedes iterar con un for o foreach. Lo importante aquí es que utilizó el delimitador o separador para separar cada palabra.
Separar cadena en PHP por guión
Esto también funciona con otros caracteres:
<?php
/*
Separar cadena usando delimitadores en PHP
https://parzibyte.me/blog/
*/
$cadena = "Hola mundo-Soy otra oración-Me gusta PHP";
$separador = "-";
$separada = explode($separador, $cadena);
var_dump($separada);
/*
Salida:
array(3) {
[0]=>
string(10) "Hola mundo"
[1]=>
string(17) "Soy otra oración"
[2]=>
string(12) "Me gusta PHP"
}
*/
Si quieres usar saltos de línea o tabulaciones simplemente debes escapar el carácter correctamente.
Usar salto de línea como delimitador
El salto de línea se representa con \n al igual que la tabulación con \t. Para separar una cadena a partir de saltos de línea haríamos lo siguiente:
<?php
/*
Separar cadena usando delimitadores en PHP
https://parzibyte.me/blog/
*/
$cadena = "Blue Jean
The Jean Genie
Stray Cat Strut
Fashion
Rock this town";
$separador = "\n"; // Usar salto de línea
$separada = explode($separador, $cadena);
var_dump($separada);
/*
Salida:
array(5) {
[0]=>
string(9) "Blue Jean"
[1]=>
string(14) "The Jean Genie"
[2]=>
string(15) "Stray Cat Strut"
[3]=>
string(7) "Fashion"
[4]=>
string(14) "Rock this town"
}
*/
Como puedes ver, solo se cambia el delimitador.
PHP: separar cadena a partir de otra cadena
Si queremos usar una cadena como delimitador, también es posible:
<?php
/*
Separar cadena usando delimitadores en PHP
https://parzibyte.me/blog/
*/
$cadena = "parzibyte.mehttps://www.gogle.comhttps://facebook.com";
$separador = "https://"; // Usar una cadena
$separada = explode($separador, $cadena);
var_dump($separada);
/*
Salida:
array(3) {
[0]=>
string(12) "parzibyte.me"
[1]=>
string(13) "www.gogle.com"
[2]=>
string(12) "facebook.com"
}
*/
Conclusión
En conclusión, explode es el equivalente de PHP a split en otros lenguajes como Python.
Recuerda que la función va a devolver un arreglo.