Ver Mensaje Individual
  #13 (permalink)  
Antiguo 12/11/2004, 08:52
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema es que si tienes mas de un espacio seguido en medio de la cadena, el implode() te crea un elemento vacio. Por ejemplo, si haces:
Código PHP:
$p=explode(' ',"hola   holita  hola");
var_dump($p); 
te muestra

array(6) { [0]=> string(4) "hola" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(6) "holita" [4]=> string(0) "" [5]=> string(4) "hola" }

Es decir, 2 espacios seguidos los toma como espacio{vacio}espacio.

La solucion por expresiones regulares seria usar el modificador de "uno o mas caracteres". Si no me equivoco, para uno o mas espacios seguidos es [[:space:]]+
Código PHP:
$p=split('[[:space:]]+',"hola   holita  hola");
var_dump($p); 
muestra

array(3) { [0]=> string(4) "hola" [1]=> string(6) "holita" [2]=> string(4) "hola" }

Usar el trim ayuda eliminando los espacios del comienzo y del final, porque parece que los espacios iniciales y finales los toma como {vacio}espacio y espacio{vacio}, creando un elemento para {vacio}.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.