Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

PHP / explode – de string a array

Es prácticamente el opuesto a implode. La función de PHP explode divide un string en varios substrings los cuales son almacenados en un array.

Es una función en la cual generalmente se usa sus 2 primeros parámetros: el primero es el delimitador, que se utiliza para dividir la cadena en subcadenas; el segundo es la cadena que será dividida. El delimitador no estará presente en los substrings que forman parte del array resultante.

También se puede usar un tercer parámetro llamado $limit.

Este parámetro es el limiter de divisiones, por ende si es 3 obtendremos 3 substrings, el último substring tendrá el resto del string principal cumpla o no con el delimitador.

Sintaxis de explode

explode($delimitador,$string,$limit)

$delimitador – es un string que contiene el carácter o conjunto de caracteres por el cual queremos cortar nuestro string.

$string – es el string al cual le aplicaremos explode.

$limit – la mayoría de las veces $limit no es utilizado, aunque si es utilizado explode devolverá la cantidad de elementos especificados en $limit con el último elemento devolviendo el resto del string, en caso de ser negativo lo que hará es devolver el array sin la cantidad de elementos que digamos

Posibles usos de PHP Explode

En este apartado veremos algunas de las situaciones en las que podríamos utilizar la función explode, recordemos que explode separa un string  según un carácter especificado en un array.

CSV

En ocasiones es probable que tengas que trabajar con CSV, los CSV tienen una estructura como la siguiente:

Lunes,martes,miércoles,jueves,viernes,sábado,domingo

La data anterior correspondería a una fila

Lo más probable es que tengamos que tener la data separada, ahí es donde entra explode.

$linea = " Lunes,martes,miércoles,jueves,viernes,sábado,domingo";
$datos = explode(",", $linea);

URLs

Esto lo hemos hecho un montón de veces en el blog, pero si obviamente que podemos querer separar la URL en muchos casos, por ejemplo en rutas para una web, un framework que estemos haciendo sacar data de la URL, etc.

Hay un ejemplo en ejemplos.

Parámetros de URL

$parametros = "param1=value1&param2=value2&param3=value3";
$parametrosArray = explode("&", $parametros);

Fechas

Supongamos que estamos haciendo algo parecido a WordPress, este tiene una carpeta update, dentro de update crea carpetas del año y mes, cuando se subieron los archivos podríamos usar explode para hacer estas carpetas.

<?php
$fechahoy= time();
$fh= date('Y-m-d', $fechahoy);
$arrfecha = explode("-",$fh);
foreach ($arrfecha as $element){
    echo "<p>$element</p>";
}

Estos son algunos ejemplos donde podrías usar explode

Ejemplos

Por ejemplo, imagine que tenemos una URL y queremos sacar algún valor en especial.

with variable $limit not specified
<?php
   $url = "hombres/camisetas/rojas";
   $array = explode("/",$url);
   echo $array[0]."\n";
   echo $array[1]."\n";
   echo $array[2]."\n";
?>
hombres
camisetas
rojas

Hagamos unos ejemplos con utilizando la variable $limit

$limit=2
<?php
   $url = "hombres/camisetas/rojas";
   $array = explode("/",$url,2);
   var_dump($array);
?>
array(2) {
  [0]=>
  string(7) "hombres"
  [1]=>
  string(15) "camisetas/rojas"
}

Ahora cambiemos $limit a -2

explode example with $limit=-2
<?php
   $url = "hombres/camisetas/rojas";
   $array = explode("/",$url,-2);
   var_dump($array);
?>
array(1) {
  [0]=>
  string(7) "hombres"
}

Haré un último ejemplo con $limit= -1 para terminar de cerrar el concepto de como funciona $limit

Example with $limit=-1
<?php
   $url = "hombres/camisetas/rojas";
   $array = explode("/",$url,-1);
   var_dump($array);
?>
array(2) {
  [0]=>
  string(7) "hombres"
  [1]=>
  string(9) "camisetas"
}
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category