De la base de datos recibo el siguiente texto:
<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[/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:
$texto = str_replace(""","\"",$texto); //para comillas
$texto = str_replace("<","<",$texto); // para <
$texto = str_replace(">",">",$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.