Esta es la respuesta más acertada que te podemos dar, pero primero estúdiala pausadamente y analiza si se puede adaptar a tu trabajo.
Solución:
Decodificarlos usando html_entity_decode
o eliminarlos usando preg_replace
:
$Content = preg_replace("/?[a-z0-9]+;/i","",$Content);
(De aquí)
EDITAR: Alternativa según el comentario de Jacco
podría ser bueno reemplazar el ‘+’ con 2,8 o algo así. Esto limitará la posibilidad de reemplazar oraciones completas cuando esté presente un ‘&’ no codificado.
$Content = preg_replace("/?[a-z0-9]2,8;/i","",$Content);
Usar html_entity_decode
para convertir entidades HTML.
Deberá configurar charset para que funcione correctamente.
Además de las buenas respuestas anteriores, PHP también tiene una función de filtro incorporada que es bastante útil: filter-var.
Para eliminar caracteres HMTL, use:
$cleanString = filter_var($dirtyString, FILTER_SANITIZE_STRING);
Más información:
- función.filtro-var
- filter_sanitize_string