Foros del Web » Programando para Internet » PHP »

Locura con el "\r\n"

Estas en el tema de Locura con el "\r\n" en el foro de PHP en Foros del Web. Hola a todos, tengo un texto en la BBDD que contiene esos fatidicos caracteres que quiero eliminar, he creado una funcion: Código PHP: function  limpiacaracter ...
  #1 (permalink)  
Antiguo 10/08/2011, 03:37
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 2
Pregunta Locura con el "\r\n"

Hola a todos, tengo un texto en la BBDD que contiene esos fatidicos caracteres que quiero eliminar, he creado una funcion:

Código PHP:
function limpiacaracter($tmpString ){
$tmpString stripslashes(str_replace('\r\n''',mysql_real_escape_string($tmpString)));
$order   = array("\r\n""\n""\r");
$replace '';
$tmpString str_replace($order$replace,$tmpString);
$tmpString trim($tmpString);
return 
$tmpString;

Pero cuando hago el echo de $tmpString, continua saliendo los dichosos caracteres y NO quiero que salgan!! pero no quiero que me haga el salto de linea, es decir, no quiero envolverlo en un <pre></pre> para que me lo formatee, quiero eliminarlo!!

Alguien me puede ayudar? gracias
  #2 (permalink)  
Antiguo 10/08/2011, 04:49
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Locura con el "\r\n"

nl2br? Te cambia los saltos de línea de texto por <br/>

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 10/08/2011, 05:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Locura con el "\r\n"

También lo he probado... pero continua saliendo y lo mejor de todo es que no me hace el cambio del "\r\n" a <br>
No entiendo nada....
  #4 (permalink)  
Antiguo 10/08/2011, 05:13
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Locura con el "\r\n"

Pero qué quieres hacer exactamente? Es decir, qué haces con el resultado de esa función. Tienes dos opciones aquí, según veo yo, quitárlos antes de pasarlos a la base de datos o quitarlos a la hora de imprimir. Yo haría la primera, es decir, almacena los valores del campo ya con eso quitado.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 10/08/2011, 05:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Locura con el "\r\n"

Si si, evidentemente los ire limpiado, pero es que me viene heredada la bbdd con el contenido y antes de editar todo los registros, queria limpiarlo en la salida.

Pero el problema es que parece como de magia el tema de que no se limpie...
  #6 (permalink)  
Antiguo 10/08/2011, 06:14
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Locura con el "\r\n"

Mira el contenido del campo directamente en la base de datos. Si ves escrito "\r\n" dentro del campo en vez de ver el susodicho salto de línea, probablemente sea tema de incompatibilidades al mover la base de datos, probablemente también desde linux a windows, ya que el salto de línea se escribe diferente.

Puede ser eso? A mí no se me ocurre más.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 10/08/2011, 06:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Locura con el "\r\n"

Si, seguro que es eso, porque lo han migrado de un access a un mysql, asi que seguro que los tiros van por ahi, pero entonces, como puedo eliminar eso para que no me salga por pantalla? editando todos los campos? buff por favor que no sea eso!!!

Gracias
  #8 (permalink)  
Antiguo 10/08/2011, 06:33
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Locura con el "\r\n"

Entonces el problema es que no hay un salto de línea insertado en la base de datos, el problema es que está metido a piñón los caracteres \r\n.

Prueba a hacer un str_replace, pero poniendo "\\r\\n" para escapar la barra y que cambie la cadena tratándola como si fueran caracteres. A ver qué sale de aquí.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #9 (permalink)  
Antiguo 10/08/2011, 12:32
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Locura con el "\r\n"

Muchas gracias, ese era el problema, la segunda barra, es curioso, me han salido en ciertos campos \\\r\\\n !!! pero bueno, ahora ya se lo que ocurre, muchísimas gracias.
  #10 (permalink)  
Antiguo 10/08/2011, 13:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Locura con el "\r\n"

Realmente no era ese el problema, sino que tienes esto al principio:

Código PHP:
Ver original
  1. $tmpString = stripslashes(str_replace('\r\n', '',mysql_real_escape_string($tmpString)));
  2.  
  3. // Cuando el orden debiera ser:
  4. $tmpString = stripslashes($tmpString);
  5. $tmpString = str_replace(array("\r", "\n"), '', $tmpString);
  6. $tmpString = mysql_real_escape_string($tmpString);

Primero eliminar el efecto de magic_quotes, quitando las dobles barras resultantes en la secuencia de escape.
Despues, eliminar los caracteres que quieres.
Finalmente, escapar para usar en consulta.

Si usas stripslashes sobre una cadena ya escapada con mysql_real_escape_string() lo que vas a obtener es un riesgo de seguridad, porque tal vez elimines las secuencias de escape de mysql, o bien, tendras una serie de secuencias de escape muy extrañas, justo lo que te estaba pasando.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: mysql, \r\n
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




La zona horaria es GMT -6. Ahora son las 10:34.