Foros del Web » Programando para Internet » PHP »

problemas con nl2br

Estas en el tema de problemas con nl2br en el foro de PHP en Foros del Web. Hola Tengo un problema de desplazamiendo de una descripcion al obtener de una base de datos , el problema es el siguiente: Por decir tengo ...
  #1 (permalink)  
Antiguo 08/10/2003, 13:41
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 14 años, 10 meses
Puntos: 1
problemas con nl2br

Hola
Tengo un problema de desplazamiendo de una descripcion al obtener de una base de datos , el problema es el siguiente:

Por decir tengo una tabla con un ancho de 450 y cuando le agrego el htmlspecialchars a lado del row me sale bien ose asi:
Código PHP:

$descr 
htmlspecialchars($row[descr]); //ahi todo bien 

echo "$descr"
pero cuando le agrego el nl2br me sale a la mitad de la tabla las descripciones como si fuera el ancho a 225 :

Código PHP:

$descr 
nl2br(htmlspecialchars($row[descr])); //aqui me sale a la mitad


echo "$descr"
Alguien sabe aque se debe esto??

saludos
  #2 (permalink)  
Antiguo 08/10/2003, 13:49
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
bueno imagino que esto debe pasar porque al introcucir los datos que debe ser a traves de un textarea se te mete salto de linea asi pues lo que hace la funcion nl2br() es cambiar el \n, salto de linea por un <br> si miras el codigo de salida del html veras que por ahy anda la cosa..

puedes utilizar esta funcion


Código PHP:
function br($texto,$salida)
{      
       if(
strlen($texto) > $salida) { 
           
$texto wordwrap($texto,$salida,"<br>",1);
       }
           else 
$texto=$texto;
        return 
$texto;      

donde $salida es el numero de caracteres que quiers que tenga
de largo la cadena

espero que te sirva

un saludo
  #3 (permalink)  
Antiguo 08/10/2003, 14:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema es que primero tienes que pasar tu htmlspecialchars() y luego el nl2br()

Si lo haces como lo estás haciendo (en el orden que usas) .. primero se ejecuta tu nl2br() --> convierte los \n en <br> ..y luego viene tu htmlspecialchars() y convierte los < en &nose y los > en su HTML equivalente ...

Tendrias que hacerlo en este orden:

Código PHP:
$descr htmlspecialchars(nl2br($row[descr])); 
Y si te dá problemas así .. usa:

Código PHP:
$descr htmlspecialchars($row[descr]);
$descr nl2br($descr); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 08/10/2003, 14:22
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 14 años, 10 meses
Puntos: 1
Gracias Jordi1 por contestar a la pregunta, me sirvio de mucho
si tenias rrazon en que al insertar en el formulario estaba el problema le di un buen vistaso y andama mal en este codigo

Código PHP:

$final_encoded 
wordwrap$message140"\n"1); //en el 40 estubo el problema
$final_encoded strip_tags($final_encoded); 
pues en el 40 estaba el problema cuanto mas alto es el numero mas largo se hace la descripcion y/o vicerversa


como quiera me copie tu function para un futuro

saludos y gracias nuevamente
  #5 (permalink)  
Antiguo 08/10/2003, 14:45
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 14 años, 10 meses
Puntos: 1
Hola cluster

Probe con el codigo que pusistes pero me salen los <br \> despues de cada linea tal y como me lo dijistes


pero bueno gracias por tu ayuda,

Última edición por macabro; 08/10/2003 a las 15:07
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:43.