Foros del Web » Programando para Internet » PHP »

Problema con la función strtr()

Estas en el tema de Problema con la función strtr() en el foro de PHP en Foros del Web. Tengo ese codigo Código PHP: $tradsp =array(  " " => "<br>"  , "<"  =>  "["  ,  ">"  =>  "]"  ,  "ç"  =>  "&ccedil" ,  "·" ...
  #1 (permalink)  
Antiguo 20/09/2009, 12:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Problema con la función strtr()

Tengo ese codigo

Código PHP:
$tradsp=array( "
"
=>"<br>" ,"<" => "[" ">" => "]" "ç" => "&ccedil""·"=>"&middot;""ü"=>"&uuml;" "ï"=>"&iuml;" "á"=>"&aacute;" "é"=>"&eacute;" "í"=>"&iacute;" "ó"=>"&oacute;" "ú"=>"&uacute;" "à"=>"&agrave;""è"=>"&egrave;" "ì"=>"&igrave;" "ò"=>"&ograve;" "ù"=>"&ugrave;""ñ"=>"&ntilde;" );

$descrali=strtr($descrali$tradsp); 
El problema está al principio:
array( "
"=>"<br>"

Quiero que se transformen los saltos de línea a "<br>" y lo hace, pero sigue conservando el salto de línea original.

Me explico:
Un usuario entra un texto:
Cita:
Mi casa es azul y verde y tu coche es rojo claro más yo soy feliz y soy más grande un año seguramente.
Creo que puedo conseguir todo esto
y se debería transformar en:

Cita:
Mi casa es azul y verde y tu coche es rojo claro m&aacute;s yo soy feliz y soy m&aacute;s grande un a&ntilde;o seguramente.<br>Creo que puedo conseguir todo esto
pero se transforma en:

Cita:
Mi casa es azul y verde y tu coche es rojo claro m&aacute;s yo soy feliz y soy m&aacute;s grande un a&ntilde;o seguramente.
<br>Creo que puedo conseguir todo esto
Hay alguna forma de eliminar este salto de línea antes del <br>?

Salu2
  #2 (permalink)  
Antiguo 20/09/2009, 13:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con la función strtr()

nl2br
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 20/09/2009, 14:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problema con la función strtr()

Gracias pero no me funciona sigue lo mismo:

frase <br />
frase.

en vez de:
frase <br /> frase

El salto de línea en el codigo no desaparece
  #4 (permalink)  
Antiguo 20/09/2009, 14:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con la función strtr()

Te sugiero agregar un str_replace, despues que hayas hecho lo de nl2br. Cambiando los \n
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 20/09/2009, 14:29
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problema con la función strtr()

ya esta muchas gracias :)

Al final ha quedado así
Código PHP:
$tradsp=array( "<" => "[" ">" => "]" "ç" => "&ccedil""·"=>"&middot;""ü"=>"&uuml;" "ï"=>"&iuml;" "á"=>"&aacute;" "é"=>"&eacute;" "í"=>"&iacute;" "ó"=>"&oacute;" "ú"=>"&uacute;" "à"=>"&agrave;""è"=>"&egrave;" "ì"=>"&igrave;" "ò"=>"&ograve;" "ù"=>"&ugrave;""ñ"=>"&ntilde;" );

$descrali=strtr($descrali$tradsp);
$hey=array("\r\n");
$descrali=nl2br($descrali);
$descrali=str_replace($hey"",$descrali); 
He añadido \r porque con \n solo no funcionava.

EDITO tambien lo podia hacer así desde un principio:

Código PHP:
$tradsp=array("\r\n"=>"<br />" ,"<" => "[" ">" => "]" "ç" => "&ccedil""·"=>"&middot;""ü"=>"&uuml;" "ï"=>"&iuml;" "á"=>"&aacute;" "é"=>"&eacute;" "í"=>"&iacute;" "ó"=>"&oacute;" "ú"=>"&uacute;" "à"=>"&agrave;""è"=>"&egrave;" "ì"=>"&igrave;" "ò"=>"&ograve;" "ù"=>"&ugrave;""ñ"=>"&ntilde;" );
    
$descrali=strtr($descrali$tradsp); 
array("\r\n"=>"<br />"

en vez de

array("
"=>"<br />"

Última edición por marti92; 20/09/2009 a las 14:38
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 21:34.