Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error por tener dos espacios

Estas en el tema de Error por tener dos espacios en el foro de PHP en Foros del Web. Hola de nuevo tengo este código con el cual leo un txt y su contenido lo inserto a una tabla de mi BD, hasta aca ...
  #1 (permalink)  
Antiguo 20/05/2014, 12:04
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.262
Antigüedad: 8 años, 4 meses
Puntos: 9
Pregunta Error por tener dos espacios

Hola de nuevo tengo este código con el cual leo un txt y su contenido lo inserto a una tabla de mi BD, hasta aca todo bien... pero tengo este detalle
Ejemplo si tengo estos datos para cargar donde (e)=espacio en blanco
130615(e)3(e)(e)32607(e)20091
130615(e)3(e)450606(e)20092

En mi tabla despues de insertar en el primer registro queda un campo en blanco y los demás campos se insertan en espacios que no le corresponden
pues al tener ese registro doble espacio en blanco (despues del 3) toma un espacio en blanco como un valor mas a insertar...
en cambio el segundo registro que solo tiene un espacio en blanco se inserta correctamente ...
hice la prueba y quite mis espacios dobles y se inserta correctamente( pero no puedo hacerlo manual ya que son varios registros)...

lei que str_replace me puede ayudar y lo agregue despues de
$datos1 = explode(" ",$linea);
$datos= str_replace(' ', ' ', $linea);
Pero me separo mi primer campo inserto en fecha 1, en clave 3, en texto 0....

Ojala me puedan ayudar desde ya gracias
Código PHP:
$lineas =file($ruta);
            
foreach (
$lineas as $linea_num => $linea)
{
    
$datos1 explode(" ",$linea);


    
$fecha trim($datos1[0]);
    
$clavetrim($datos1[1]);
    
$texto trim($datos1[2]);
    
    
    
mysql_select_db($database_connection$connection);
    
$consulta "INSERT INTO txtlectura(fecha,clave,texto) VALUES('$fecha','$clave','$texto')";
    
$consulta2 mysql_query($consulta$connection) or die(mysql_error());

  #2 (permalink)  
Antiguo 20/05/2014, 12:11
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.055
Antigüedad: 13 años, 6 meses
Puntos: 50
Respuesta: Error por tener dos espacios

Brisss.

En vez del str_replace, esta expresion regular que encontre en este mismo foro... pero eso lo debes hacer antes del explode...


Código PHP:
$texto preg_replace('/\s+/'' '$texto); 
  #3 (permalink)  
Antiguo 20/05/2014, 12:12
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 7 años
Puntos: 84
Respuesta: Error por tener dos espacios

Briss, no me quedó claro qué es lo que pretendes solucionar:

1) quitar todos los espacios en blanco.

2) sustituir espacios en blanco por un solo espacio en blanco.
__________________
Ayúdame a hacerlo por mi mismo.
  #4 (permalink)  
Antiguo 20/05/2014, 12:16
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.262
Antigüedad: 8 años, 4 meses
Puntos: 9
Respuesta: Error por tener dos espacios

Cita:
Iniciado por guardarmicorreo Ver Mensaje
Briss, no me quedó claro qué es lo que pretendes solucionar:

1) quitar todos los espacios en blanco.

2) sustituir espacios en blanco por un solo espacio en blanco.
guardarmicorreo amigo lo que quiero es sustituir los espacios dobles por uno sencillo para que se inserten en los campos correctos
Gracias
  #5 (permalink)  
Antiguo 20/05/2014, 12:40
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 7 años
Puntos: 84
Respuesta: Error por tener dos espacios

entonces pasa el string que quieres limpiar de dobles, triples, etc. espacios en blanco por este código y di si te funciona o qué error te devuelve

Código PHP:
Ver original
  1. $newstring = preg_replace("/([ ]*)/i", " ", $oldstring)
__________________
Ayúdame a hacerlo por mi mismo.
  #6 (permalink)  
Antiguo 20/05/2014, 12:52
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.262
Antigüedad: 8 años, 4 meses
Puntos: 9
Respuesta: Error por tener dos espacios

Cita:
Iniciado por helacer Ver Mensaje
Brisss.

En vez del str_replace, esta expresion regular que encontre en este mismo foro... pero eso lo debes hacer antes del explode...


Código PHP:
$texto preg_replace('/\s+/'' '$texto); 
Amigo no habia visto tu comentario pero con lo que me explicaste queda perfecto
Gracias
  #7 (permalink)  
Antiguo 20/05/2014, 12:53
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.262
Antigüedad: 8 años, 4 meses
Puntos: 9
Respuesta: Error por tener dos espacios

Cita:
Iniciado por guardarmicorreo Ver Mensaje
entonces pasa el string que quieres limpiar de dobles, triples, etc. espacios en blanco por este código y di si te funciona o qué error te devuelve

Código PHP:
Ver original
  1. $newstring = preg_replace("/([ ]*)/i", " ", $oldstring)
Amigo con esto separaba mi primer campo en varios
pero con esto $linea = preg_replace('/\s+/', ' ', $linea);

quedo perfecto gracias por tu tiempo y ayuda

Etiquetas: espacios, fecha, mysql, registro, select, sql, tabla, tener
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 01:34.