Foros del Web » Programando para Internet » PHP »

saltos de linea y comillas simples

Estas en el tema de saltos de linea y comillas simples en el foro de PHP en Foros del Web. Hola a todos: he migrado una tabla de access a mysql en la que tenia texto con saltos de linea y comillas simples pues bien: ...
  #1 (permalink)  
Antiguo 22/01/2004, 05:28
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
saltos de linea y comillas simples

Hola a todos:

he migrado una tabla de access a mysql en la que tenia texto con saltos de linea y comillas simples

pues bien: al visualizar las comillas simples me muestra \' y los saltos de linea, tanto si ejecuto nl2br() como si lo hago con str_replace me presenta todas las lineas una a continuacion de la otra separadas por un espacio

imagino que tengo "basurilla" en el texto, pero ¿como lo puedo verificar?

gracias con antelacion
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #2 (permalink)  
Antiguo 22/01/2004, 06:21
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Supongo que lo que pasa es que los datos guardados estan "escapados" con el caracter \. Para "desescaparlos" puedes usar la funcion stripslashes() (www.php.net/stripslashes). Una vez "desescapados" los manejas normalmente.

Lo mejor es guardarlos escapados y desescaparlos a la hora de mostrarlos.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 22/01/2004, 06:44
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
¿eso se puede aplicar tambien al problema con las comillas?

¿por que sucede esto? te lo pregunto porque tengo otra base de datos en otra pagina con texto con saltos de linea y no me ha dado problemas

lo pruebo y te cuento
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #4 (permalink)  
Antiguo 22/01/2004, 06:48
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
pues no funciona...

te paso el link por si prefieres verlo

http://musicayletras.webcindario.com/menu_canciones.php

es curioso que el error de salto de linea no suceda tambien aqui:

http://musicayletras.webcindario.com/dirdb/

puntualizo: para la comilla si que funciona, pero sigo con el problema del salto de linea ¿como puedo saber realmente el separador que tengo en el texto?
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.


Última edición por sgafo; 22/01/2004 a las 09:39
  #5 (permalink)  
Antiguo 23/01/2004, 02:50
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
¿nadie lo sabe?
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #6 (permalink)  
Antiguo 23/01/2004, 03:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
¿Te refieres a la hora de mostrar la letra de la cancion? Por ejemplo, en la cancion "I don\'t wanna miss a thing" - Aerosmith , todavia tienes la \ en el titulo. Y en la letra, el salto esta con \n (mira como se ve al dar "Ver->Codigo fuente en ese frame"), por lo que debes usar nl2br() despues de stripslashes():
Código PHP:
$texto=stripslashes($campo_bd);
$texto=nl2br($texto);
echo 
$texto
Saludos.

PD: A veces es util ver el codigo que usas, por si es un fallo en tu logica o algun error de sintaxis o algun error raro de PHP.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 23/01/2004 a las 03:12
  #7 (permalink)  
Antiguo 23/01/2004, 03:40
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
perdona Josemi... estaba haciendo las pruebas con la opcion de visualizar el album (ese grafico de info) y llama a otro codigo distinto. Tendre que aplicar stripslashes() en todos los textos que visualice en cada pagina.

El problema lo tengo con la letra de la cancion, o con el listado de temas del album. No existe salto de linea, y creo que lo que sucede es que en lugar de \n tengo un espacio, pero no comprendo por que.

He probado si tengo \t o \r pero tampoco es asi y no se como puedo asegurarme del separador de lineas que tengo actualmente en el texto introducido en la base de datos.

Lo que no acabo de entender es por que no tengo el mismo error en el libro de visitas si el traspaso de tablas lo he realizado de la misma manera.

Mi pregunta es: ¿como puedo saber con exactitud que tengo en lugar de un salto de linea en los textos?

Gracias de nuevo
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #8 (permalink)  
Antiguo 23/01/2004, 05:42
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Ya está resuelto y explico como (aunque no comprenda muy bien el por que ) :

en el caso de la letra: al agregar la funcion stripslashes() en el codigo que muestra la letra, se soluciono tanto el error de las comillas como el del salto de linea.

el problema era con el listado de temas, que se pasaban como argumento y no como en el caso anterior, que se extraian directamente de la tabla. Pues lo que he hecho es NO pasarlos como argumento, sino extraerlos nuevamente de la tabla, ¡y voila!

Espero que este "monologo" le sirva de ayuda a alguien en el futuro.

Saludos y gracias de nuevo Josemi.
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #9 (permalink)  
Antiguo 23/01/2004, 05:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, cuando dices "pasarlo como argumento" supongo que sera pasarlo como parametro por el link.

Quizas antes de intentar solucionar el tema, tendria que haber hablado algo de las razones por las que puede pasar esto.

Si no me equivoco, la "culpa" de estas \ la tienen 2 directivas del php.ini: magic_quotes_gpc y magic_quotes_runtime. Se puede averiguar en "tiempo real" el estado de estas directivas con get_magic_quotes_gpc() (www.php.net/get_magic_quotes_gpc) y get_magic_quotes_runtime() (www.php.net/get_magic_quotes_runtime). La de gpc añade el \ a los valores recibidos por Get, Post o Cookie, mientras que la runtime se encarga de "fuentes externas" como ficheros y bases de datos.

Esto es muy por encima la teoria detras de este problema.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 23/01/2004, 07:07
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
si... parametro (por si hay dudas estoy en el curro)

gracias por esta informacion tan valiosa

saludos
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

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 16:15.