Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/09/2008, 08:10
Anyeos
 
Fecha de Ingreso: octubre-2006
Mensajes: 6
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Eliminar saltos de línea de una cadena (PHP->Javascript)

Yo lo solucioné de esta forma:

oFCKeditor.Value = '<?php echo preg_replace("(\r\n)", "", $descripcion); ?>';

De esa manera reemplazo los cambios de línea (que están compuestos por retorno de carro más línea nueva) por nada, o sea, por una cadena nula, vacía. Eso lo arregla viniendo de la base de datos, en la base de datos queda almacenado sin modificarse. Aunque es bueno guardarlo en la base de datos directamente así y sería recomendable porque es más rápido luego para editar (ya que no haría el arreglo de la cadena cada vez que se edite). Pero como no se suele editar tan seguido no afecta demasiado al rendimiento.
Lo que sí, este sirve nada más para la forma de \r\n pero es el cambio de línea habitual en estos sistemas así que creo que funcionaría siempre y en la mayoría de los servidores.

Recomiendo el uso de la función preg_replace ya que es bastante rápida. Se han hecho pruebas de velocidad de esa función vs otras (como la que usa el amigo que dejó su solución) y preg_replace siempre resultó ser más rápida.

Nota: No sé si lo habrán pensado, lo sabían o lo estudiaron pero por qué existe \r\n. Eso viene de las máquinas de escribir en las cuales uno debía primero empujar el carro (rodillo que llevaba la hoja) y retornarlo a su posición inicial. Eso se llama retorno de carro (carriage return en inglés) y en el ordenador es simbolizado por \r. Luego había que apretar una palanquita para que girara el papel lo que hacía cambiar a la línea siguiente. Eso en un ordenador es simbolizado por \n y significa nueva línea (new line en inglés). Entonces para mantener compatibilidad y analogía con las máquinas de escribir es que se mantuvo esa postura. Porque una PC no necesita hacer un retorno de carro, simplemente es un cambio de línea y ya se sabe que la línea se empieza del otro lado, al comienzo de la hoja. Pero en las máquinas de escribir había que hacer todo el proceso y (esta es mi opinión) supongo que para mantener una analogía en cuanto al funcionamiento y relación con el usuario se consideró que una PC debía utilizar el concepto de retorno de carro. Lo que supongo que (también mi opinión) le indicaba al software (y quizá al equipo de impresión) que colocara el cursor al comienzo de la línea.

Saludos.