Incapaz de reemplazar algunos caracteres html de un texto recibido de una base de dat

  • Autor Autor JetLagFox
  • Fecha de inicio Fecha de inicio
J

JetLagFox

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
De la base de datos recibo el siguiente texto:

PHP:
<div onclick="alert('código inyectado');">Texto</div>

[img]http://www.hobbyconsolas.com/sites/hobbyconsolas.com/public/media/image/2015/07/503196-halo-5-guardians-nuevos-datos-campana-cooperativa.jpg[/img]

Y aquÃ* una URL: [url=https://www.google.es/?gws_rd=ssl]Google[/url]

Bueno pues vamos [b]a ver si esto funciona[/b] porque "todavÃ*a" no lo sé [i][u]bien[/u][/i]

Este texto lo guardo en una variable $texto. Después de pasar por htmlspecialchars() para evitar inyección de código, intento reemplazar los caracteres html por sus homólogos:

PHP:
$texto = str_replace(""","\"",$texto); //para comillas
$texto = str_replace("&lt;","<",$texto); // para <
$texto = str_replace("&gt;",">",$texto); // para >

Pero no se modifica ninguno. He estado haciendo pruebas y parece ser que es por el carácter &, si lo elimino sí se modifica.
 
una duda, no sería más sencillo si tu base de datos la hacer con fundamentación para utf8 y al recibir a tu html igual permites caracteres utf8?
 
Atrás
Arriba