Foros del Web » Programando para Internet » PHP »

Mostrar entidades html

Estas en el tema de Mostrar entidades html en el foro de PHP en Foros del Web. Hola tengo este código: Código PHP: $pal  =  "límite" ; echo  $pal ;  Lo que quiero es que me muestre en pantalla la variable $pal ...
  #1 (permalink)  
Antiguo 09/10/2012, 19:03
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Mostrar entidades html

Hola tengo este código:

Código PHP:
$pal "límite";
echo 
$pal
Lo que quiero es que me muestre en pantalla la variable $pal pero con sus entidades html, en este caso quisiera que se muestre "límite".

Ya probé con htmlentities() pero no funcionó, utf8_encode() y tampoco. ¿Hay alguna manera de lograrlo?

Gracias!!
  #2 (permalink)  
Antiguo 09/10/2012, 19:10
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: Mostrar entidades html

echo htmlentities($pal);

eso anda
  #3 (permalink)  
Antiguo 09/10/2012, 19:17
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por patriciomase Ver Mensaje
echo htmlentities($pal);
eso anda
No, justamente dije que probe con ese y no anda :(
  #4 (permalink)  
Antiguo 09/10/2012, 23:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mostrar entidades html

Usa dos veces la función, una para convertir í en í y otra para convertirlo en í

echo htmlentities(htmlentities('Límite'));
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 10/10/2012, 06:26
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por Triby Ver Mensaje
Usa dos veces la función, una para convertir í en í y otra para convertirlo en í

echo htmlentities(htmlentities('Límite'));
Hola, muchas gracias por tu respuesta, pero lamentablemente me imprime en pantalla límite
  #6 (permalink)  
Antiguo 10/10/2012, 06:33
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Mostrar entidades html

Buenas!

A ver si puedo arrojar algo de luz al tema:

"Lo que quiero es que me muestre en pantalla la variable $pal pero con sus entidades html, en este caso quisiera que se muestre "límite".", ¿si?

prueba de hacer así:

Código:
echo("<pre>".htmlentities($par)."</pre>");
Lo que pasa muchas veces es que nos fijamos en la web, pero debemos ver el Código fuente (a mi me pasa muchas veces, jeje)

Poniendo un <pre> evitamos que se conviertan en caracteres.

Espero poder ayudar.

Saludos
  #7 (permalink)  
Antiguo 10/10/2012, 06:46
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por DoHITB Ver Mensaje
Buenas!

A ver si puedo arrojar algo de luz al tema:

"Lo que quiero es que me muestre en pantalla la variable $pal pero con sus entidades html, en este caso quisiera que se muestre "l&iacute;mite".", ¿si?

prueba de hacer así:

Código:
echo("<pre>".htmlentities($par)."</pre>");
Lo que pasa muchas veces es que nos fijamos en la web, pero debemos ver el Código fuente (a mi me pasa muchas veces, jeje)

Poniendo un <pre> evitamos que se conviertan en caracteres.

Espero poder ayudar.

Saludos
Si si, me fije en el codigo fuente pero muestra lo mismo que imprime en pantalla: lÃmite
  #8 (permalink)  
Antiguo 10/10/2012, 08:46
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Mostrar entidades html

Buenas.

Si no te importa que salga la entidad en modo numérico, prueba el siguiente código:

Código PHP:
Ver original
  1. $txt = "HOLA";
  2.        
  3. for($i=0;$i<strlen($txt);$i++){
  4.     echo("&#".ord($txt[$i]).";");
  5. }

Esto devolverá todo el texto en entidades HTML. En el ejemplo que te muestro, la salida sería:

Código:
HOLA
Seguro que puedes adaptarlo... espero que esto sí te sirva!

Saludos

Última edición por DoHITB; 10/10/2012 a las 08:55
  #9 (permalink)  
Antiguo 10/10/2012, 09:14
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por DoHITB Ver Mensaje
Buenas.

Si no te importa que salga la entidad en modo numérico, prueba el siguiente código:

Código PHP:
Ver original
  1. $txt = "HOLA";
  2.        
  3. for($i=0;$i<strlen($txt);$i++){
  4.     echo("&#".ord($txt[$i]).";");
  5. }

Esto devolverá todo el texto en entidades HTML. En el ejemplo que te muestro, la salida sería:

Código:
HOLA
Seguro que puedes adaptarlo... espero que esto sí te sirva!

Saludos
Agradezco muchísimo tu respuesta y comentarios, pero necesito que salga la entidad html exacta como la escribi arriba. Se me ocurre en ultima instancia reemplazar los acentos con str_replace, pero voy a tener que hacerlo para cada vocal, eñes, signos, etc :(
  #10 (permalink)  
Antiguo 10/10/2012, 09:22
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Mostrar entidades html

Si piensas hacerlo por str_replace, te recomiendo que mires la documentación oficial de str_replace. Hay un ejemplo que te servirá muchísimo

http://php.net/manual/es/function.str-replace.php

Saludos!
  #11 (permalink)  
Antiguo 10/10/2012, 09:31
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por DoHITB Ver Mensaje
Si piensas hacerlo por str_replace, te recomiendo que mires la documentación oficial de str_replace. Hay un ejemplo que te servirá muchísimo

http://php.net/manual/es/function.str-replace.php

Saludos!
Muchísimas gracias. Si, voy a probar con eso me parece.
  #12 (permalink)  
Antiguo 10/10/2012, 10:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Mostrar entidades html

Hola,

Por si te sirve, yo tengo hecha esta función que, en teoría hace lo que tú quieres:

Código PHP:
Ver original
  1. <?php
  2. function CambiaHTML($texto) {
  3.  
  4. $texto = str_replace('á','&aacute;',$texto);
  5. $texto = str_replace('é','&eacute;',$texto);
  6. $texto = str_replace('í','&iacute;',$texto);
  7. $texto = str_replace('ó','&oacute;',$texto);
  8. $texto = str_replace('ú','&uacute;',$texto);
  9. $texto = str_replace('ñ','&ntilde;',$texto);
  10. $texto = str_replace('Á','&Aacute;',$texto);
  11. $texto = str_replace('É','&Eacute;',$texto);
  12. $texto = str_replace('Í','&Iacute;',$texto);
  13. $texto = str_replace('Ó','&Oacute;',$texto);
  14. $texto = str_replace('Ú','&Uacute;',$texto);
  15. $texto = str_replace('Ñ','&Ntilde;',$texto);
  16.  
  17. return $texto;
  18.  
  19. }
  20.  
  21. ?>

Espero que te ayude.

.
  #13 (permalink)  
Antiguo 10/10/2012, 11:11
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Mostrar entidades html

Olvidé una cosa que te ahorrará mucho código:


La función str_replace admite en los dos primeros parámetros arrays, de modo que los reemplaza por parejas.

No tendrías más que emparejar los reemplazos en sendos arrays y hacer un único str_replace, algo así:

Código:
function replace($txt){
$old = array("á", "é"...);
$new = array("&aacute", "&eacute"...);

return str_replace($old, $new, $txt);
}
Saludos!
  #14 (permalink)  
Antiguo 10/10/2012, 11:20
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Mostrar entidades html

debe ser problema de la codificación

prueba haciendo:

Código PHP:
Ver original 

Si te funciona de esa manera compruel collation eba las configuraciones de codificación en tu servidor, o si el dato lo traes desde la base de datos comprueba también el collation de la obtención de datos.

saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #15 (permalink)  
Antiguo 10/10/2012, 12:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mostrar entidades html

La única razón que se me ocurre para que te convierta Límite en LÃmite es un conflicto entre juego de caracteres de tu sitio y el default de la función. Prueba especificando el juego de caracteres usado en tu sitio:

htmlentities($pal, ENT_COMPAT, 'UTF-8');

Manual: http://mx.php.net/htmlentities
__________________
- León, Guanajuato
- GV-Foto
  #16 (permalink)  
Antiguo 10/10/2012, 12:10
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Mostrar entidades html

Lo mas recomendable es que revisaras la configuración de PHP porque la funcion htmlentities para eso sirve, y quizás tengas algo mal configurado, y nunca utilices str_replace para convertir entidades
Saludos
  #17 (permalink)  
Antiguo 10/10/2012, 12:20
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Les agradezco a todos, terminé usando str_replace al final. Me cuesta creer que no haya un comando directo para hacer eso, pero bueno...
  #18 (permalink)  
Antiguo 10/10/2012, 12:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mostrar entidades html

Cita:
Iniciado por FantasmaFito
Les agradezco a todos, terminé usando str_replace al final. Me cuesta creer que no haya un comando directo para hacer eso, pero bueno...
A mí me cuesta creer que hayas elegido el camino menós adecuado y con más código, en lugar del "comando directo para hacer eso" y todavía digas que no existe!
__________________
- León, Guanajuato
- GV-Foto
  #19 (permalink)  
Antiguo 10/10/2012, 14:11
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por Triby Ver Mensaje
A mí me cuesta creer que hayas elegido el camino menós adecuado y con más código, en lugar del "comando directo para hacer eso" y todavía digas que no existe!
Bueno, te cuento que el que escribiste vos htmlentities($pal, ENT_COMPAT, 'UTF-8'); no me anduvo, jeje
  #20 (permalink)  
Antiguo 10/10/2012, 14:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mostrar entidades html

Lo que pasa es que el copiar/pegar no siempre va a funcionar, por eso te dejé el enlace al manual de la función, tal vez (seguramente) sólo tienes que cambiar el juego de caracteres y listo!
__________________
- León, Guanajuato
- GV-Foto
  #21 (permalink)  
Antiguo 10/10/2012, 14:57
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Mostrar entidades html

Cita:
Iniciado por Triby Ver Mensaje
Lo que pasa es que el copiar/pegar no siempre va a funcionar, por eso te dejé el enlace al manual de la función, tal vez (seguramente) sólo tienes que cambiar el juego de caracteres y listo!
Creeme que probe y re-probe todos los juegos de caracteres y nada :(
  #22 (permalink)  
Antiguo 10/10/2012, 19:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mostrar entidades html

Muy raro, porque yo siempre codifico en ISO-8859-1 y probé lo siguiente:

Código PHP:
Ver original
  1. $var = 'Límite';
  2.  
  3. // Resultado del primero: L&iacute;mite
  4. // Resultado del segundo: L&Atilde;&shy;mite

Insisto en que el problema es sólo el juego de caracteres usado y el que especificas en la función.

Cita:
Iniciado por Manual PHP para htmlentities()
Al igual que htmlspecialchars(), htmlentities() toma un tercer argumento opcional encoding el cual define la codificación usada en la conversión. Si se omite, el valor por defecto para este argumento es ISO-8859-1 en versiones de PHP anteriores a 5.4.0, y es UTF-8 desde PHP 5.4.0 en adelante. Aunque este argumento es técnicamente opcional, es altamente recomendable especificar el valor correcto para el código.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: entidades, html, variables
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:26.