Foros del Web » Programando para Internet » PHP »

funcion eliminar doble espacios en una cadena

Estas en el tema de funcion eliminar doble espacios en una cadena en el foro de PHP en Foros del Web. Hola, creé una función que quita posibles doble espacios (o más) en medio de una cadena, pero resulta que es demasiado "agresivo", porque además de ...
  #1 (permalink)  
Antiguo 27/03/2006, 05:09
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 384
Antigüedad: 19 años, 3 meses
Puntos: 0
funcion eliminar doble espacios en una cadena

Hola, creé una función que quita posibles doble espacios (o más) en medio de una cadena, pero resulta que es demasiado "agresivo", porque además de quitar los doble espacios, también quita saltos de linea. Alguien me echa una mano para hacer una función que haga lo mismo pero que no elimine saltos de linea?

La función es esta:
Código PHP:

// funcion que elimina los doble espacios (o mas) dentro de una
// cadena, no unicamente en los extremos
function fun_eliminarDobleEspacios($cadena)
{
    
$limpia    "";
    
$parts    = array();
    
    
// divido la cadena con todos los espacios q haya
    
$parts split(" ",$cadena);
    
    foreach(
$parts as $subcadena)
    {
        
// de cada subcadena elimino sus espacios a los lados
        
$subcadena trim($subcadena);
        
        
// luego lo vuelvo a unir con un espacio para formar la nueva cadena limpia
        // omitir los que sean unicamente espacios en blanco
        
if($subcadena!="")
        { 
$limpia .= $subcadena." "; }
    }
    
$limpia trim($limpia);
    
    return 
$limpia;

Gracias.
__________________
m!ketrix
CINE25 - Red Social de Cine
byinspiroh
  #2 (permalink)  
Antiguo 28/03/2006, 04:28
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 384
Antigüedad: 19 años, 3 meses
Puntos: 0
nadie da más? :P
__________________
m!ketrix
CINE25 - Red Social de Cine
byinspiroh
  #3 (permalink)  
Antiguo 28/03/2006, 05:22
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 8 meses
Puntos: 1
Porque no buscas los \n para no cargartelos?

Un saludo.
__________________
www.pensandoenred.com
  #4 (permalink)  
Antiguo 24/07/2008, 10:47
 
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: funcion eliminar doble espacios en una cadena

Podrias utilizar esta funcion str_replace();
Por ejemplo
$valor=str_replace(' ','','DE LA CRUZ');
echo $valor // 'DELACRUZ'

Saludos
  #5 (permalink)  
Antiguo 24/07/2008, 10:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funcion eliminar doble espacios en una cadena

en si, esto es mas simple... con expresiones regulares

Código PHP:
$texto preg_replace('/\s+/'' '$texto); 
de este modo

/ separador
\s es un espacio
+ cuantificador multiple (al menos uno)
/ separador

y listo, solo reemplazamos.... "desde un espacio o mas" por "un solo espacio"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 06/05/2010, 09:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: funcion eliminar doble espacios en una cadena

Hola, perdon por ir a un hilo tan viejo, pero

Cita:
$texto = preg_replace('/\s+/', ' ', $texto);
Deja toda la cadena en la misma linea.
¿Hay algun modo de respetar los saltos de linea?
Saludos y gracias
  #7 (permalink)  
Antiguo 06/05/2010, 09:40
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: funcion eliminar doble espacios en una cadena

en realidad debiste abrir otro tema...

$texto = preg_replace('/\s+/', ' ', $texto);

esa expresion esta correcta.. y no deberia de reemplazarte los saltos de linea..
pega el texto o algo para probar
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 06/05/2010, 10:00
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: funcion eliminar doble espacios en una cadena

Hola,
con codigo html de esta pagina por ejemplo
Código:
  echo preg_replace('/\s+/',  ' ', '<div class="quote-container">
	<span class="smallfont">Cita:</span>
   " hola
    esto lo pongo yo "
		<div class="alt2" style="border: 0px solid rgb(102, 102, 102);">');
Saludos
  #9 (permalink)  
Antiguo 06/05/2010, 10:03
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: funcion eliminar doble espacios en una cadena

bueno y lo estas viendo con la salida html ?
por que recuerda que el html no te mostrara los saltos de linea con \n sino que con la etiqueta <br /> y para eso tienes la funcion nl2br de php

Código PHP:
Ver original
  1. echo nl2br(preg_replace('/\s+/',  ' ', '<div class="quote-container">
  2.     <span class="smallfont">Cita:</span>
  3.   " hola
  4.    esto lo pongo yo "
  5.         <div class="alt2" style="border: 0px solid rgb(102, 102, 102);">'));
__________________
More about me...
~ @rhyudek1
~ Github
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 12:01.