Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2008, 09:17
Avatar de Cristiaen
Cristiaen
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Eliminar saltos de línea de una cadena (PHP->Javascript)

Hola a todo aquel que pase a leer esto,

Utilizo FCKEditor (editor WYSIWYG famosillo, por si alguien no lo conoce) en el panel de administración de una página que estoy desarrollando y tengo el siguiente problema:

Al crear una nueva página con un formulario, el contenido de la cual lo genera FCKEditor como HTML, lo guardo en una tabla de una base de datos MySQL. Luego si quiero editarla, puedo hacerlo a través de un formulario parecido que recoge los datos de la página en cuestión y la muestra en el formulario.

Ahora viene el problema, y es que cuando quiero que el editor WYSIWYG muestre el código HTML este se muestra con saltos de línea, lo cual hace que la variable Javascript no sea válida. Me explico:

Código HTML:
<script language="javascript"> 
Código:
var oFCKeditor = new FCKeditor('content');
oFCKeditor.Width = "97%";
oFCKeditor.Height = 200;
oFCKeditor.Config[ "AutoDetectLanguage" ] = false;
oFCKeditor.Config[ "DefaultLanguage" ] = "ca";
oFCKeditor.ToolbarSet = "Default";
oFCKeditor.Value = '<?php echo $new["content"]; ?>';
oFCKeditor.Config[ "SkinPath" ] = 'skins/Office2007Real/';
oFCKeditor.BasePath = "http://xxx/cairat/admin/themes/cairat/fckeditor/";
oFCKeditor.Create();
Código HTML:
</script> 
Cuando se genera la página, la linea marcada en rojo se transforma en algo así:

Código:
oFCKeditor.Value = '<p>adsa</p>
<p>&nbsp;</p>
<p>dd</p>';oFCKeditor.Create();
Con lo cual, los saltos de línea impiden que la lectura Javascript se realice y no aparece nada.

He probado varias soluciones entre Google y Foros del web, como por ejemplo al guardar la información en la base de datos cuando se crea la página

Código PHP:
$content=$_POST["content"];
$content trim($content);
$content str_replace("
"
$content);
$content rtrim($content);
$content chop($content);
$content str_replace("\n"$content);
$content str_replace("[\n\r]"$content);
$content str_replace("[\n]"$content); 
pero ninguna de ellas ha funcionado...

Otra solución que se me ha ocurrido es intentar contar las líneas de la cadena en PHP y luego ir mostrándolas una por una:

Código:
oFCKEditor.Value = '<p>adsa</p>';
oFCKEditor.Value+= '<p>&nbsp;</p>';
etc..
Pero no he encontrado ninguna función en PHP para contar cadenas que no sea

Código PHP:
explode("\n"$content); 
Y eso no me sirve, no sé por qué pero no cuenta nada.

¿Alguna sugerencia para eliminar los saltos de línea o contar líneas?

Muchas gracias!

Última edición por Cristiaen; 11/02/2008 a las 09:19 Razón: Error en código