Forum und email

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 '&'
  • '"' (doble comilla) se convierte en '"' cuando no se utiliza la constante ENT_NOQUOTES.
  • ''' (commilla simple) se convierte en ''' 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().