htmlspecialchars_decode
implode
String Functions
PHP Manual

# htmlspecialchars

(PHP 4, PHP 5)

htmlspecialchars — Convierte caracteres especiales a entidades HTML

### Descripción

string htmlspecialchars ( string `$cadena` [, int `$quote_style` [, string `$juego_caracteres` ]] )

Ciertos caracteres tienen significados especiales en HTML, y deben ser representados por entidades HTML si se desea preservar su significado. Esta función devuelve una cadena con dichas conversiones realizadas, que por defecto son las más habituales para la programación web. Si se requiere traducir todas las entidades HTML, se debe emplear la función htmlentities().

Esta función es útil para evitar que el texo introducido por el usuario contenga código HTML, como ocurre en aplicaciones de foros o libros de visita. El segundo parámetro `quote_style` indica a la función el modo en el que se tienen que tratar las comillas simples y las comillas dobles. El modo por defecto es `ENT_COMPAT`, que es el modo retrocompatible que solo traduce las comillas dobles y deja intactas las comillas simples. Si se indica el valor `ENT_QUOTES`, se traduce tanto las comillas simples como las dobles. Por último, si se indica el valor `ENT_NOQUOTES`, no se traducen ni las comillas simples ni las dobles.

Actualmente, las traducciones realizadas son:

- '&' (ampersand) se convierte en '&amp;'
- '"' (doble comilla) se convierte en '&quot;' cuando no se utiliza la constante `ENT_NOQUOTES`.
- ''' (commilla simple) se convierte en '&#039;' cuando se utiliza `ENT_QUOTES`.
- '<' (menor que) se convierte en '&lt;'
- '>' (mayor que) se convierte en '&gt;'

Example #1 Ejemplo de htmlspecialchars()

`<?php
$nuevo = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $nuevo; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>`

Nótese que esta función no traduce nada más que lo mostrado más arriba. Para realizar una traducción de entidades completa, vea htmlentities(). El soporte del segundo parámetro se incluyó en la versión de PHP 3.0.17 y PHP 4.0.3.

El tercer argumento `juego_caracteres` define el juego de caracteres que se emplea en la conversión. El juego de caracteres por defecto es el ISO-8859-1. El soporte de este parámetro se incluyó en la versión de PHP 4.1.0.

Los siguientes juegos de caracteres son soportados a partir de PHP 4.3.0.

Juegos de caracteres soportados
Juego de caracteres | Aliases | Descripción
--- | --- | ---
ISO-8859-1 | ISO8859-1 | Europeo Occidental, Latin-1
ISO-8859-15 | ISO8859-15 | Europeo Occidental, Latin-9. Añade el signo de Euro, y letras del Francés y Finlandés que hacían falta en Latin-1(ISO-8859-1).
UTF-8 |  | Multi-byte Unicode de 8-bits compatible con ASCII.
cp866 | ibm866, 866 | Juego de caracteres cirílicos específico de DOS. Este juego de caracteres está soportado en 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Juego de caracteres cirílicos específico de Windows. Este juego de caracteres está soportado en 4.3.2.
cp1252 | Windows-1252, 1252 | Juego de caracteres específico de Windows para Europa Occidental.
KOI8-R | koi8-ru, koi8r | Ruso. Este juego de caracteres está soportado en 4.3.2.
BIG5 | 950 | Chino Tradicional, usado principalmente en Taiwán.
GB2312 | 936 | Chino Simplificado, juego de caracteres estándar nacional.
BIG5-HKSCS |  | Big5 con extensiones de Hong Kong, Chino Tradicional.
Shift_JIS | SJIS, 932 | Japonés
EUC-JP | EUCJP | Japonés

> Note: Cualquier otro juego de caracteres no es reconocido y en su lugar se utilizará ISO-8859-1.

Vea también get_html_translation_table(), strip_tags(), htmlentities() y nl2br().

htmlspecialchars_decode
implode
String Functions
PHP Manual