Foros del Web » Programando para Internet » PHP »

sutittuir espacios por un solo guion

Estas en el tema de sutittuir espacios por un solo guion en el foro de PHP en Foros del Web. Necesito sustituir una cadena cuando tengo espacios por un guion el problema es que no se como hacer cuando son mas de un espacio. $str="cadena ...
  #1 (permalink)  
Antiguo 08/09/2015, 14:14
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 13 años, 3 meses
Puntos: 5
sutittuir espacios por un solo guion

Necesito sustituir una cadena cuando tengo espacios por un guion el problema es que no se como hacer cuando son mas de un espacio.

$str="cadena de prueba ";
$str = str_replace(" ","-",$str);

//quiero que muestre esto
//cadena-de-prueba

alguien me ayuda?
  #2 (permalink)  
Antiguo 08/09/2015, 14:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: sutittuir espacios por un solo guion

Si te refieres a "más de un espacio consecutivo" entonces deberías usar expresiones regulares:
Código PHP:
Ver original
  1. echo preg_replace('/\s+/', '-', 'foo    candy bar');
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/09/2015, 14:25
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: sutittuir espacios por un solo guion

Hola peteketrueke, muchas gracias, no conocia preg_replace, saludos.
  #4 (permalink)  
Antiguo 08/09/2015, 14:28
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: sutittuir espacios por un solo guion

Si tienes varios espacios en medio tendrás que usar preg-replace

Código PHP:
$str 'cadena   de prueba';
$str preg_replace('/\s+/''-'$str); 
Editado: He llegado tarde....

Última edición por cluster28; 08/09/2015 a las 14:33
  #5 (permalink)  
Antiguo 08/09/2015, 22:02
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: sutittuir espacios por un solo guion

Otra forma un poco mas loca pero sin usar expresiones regulares:
Código PHP:
Ver original
  1. <?php
  2.     $str = "cadena   de    prueba ";
  3.    
  4.     $str = str_replace(
  5.         array_merge(array_fill(0, substr_count($str, "  "), "  "), [" "]),
  6.         array_merge(array_fill(0, substr_count($str, "  "), " "), ["-"]),
  7.         trim($str)
  8.     );
  9.    
  10.     echo $str;
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: espacios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:44.