Programación y ejemplos de PHP, jQuery, HTML5, WordPress, MySQL, AMP y htaccess


PHP htmlspecialchars(): convierte o escapa caracteres en código HTML

Toca repasar la función PHP htmlspecialchars(). En PHP se usa bastante para escapar caracteres especiales cuando se trabaja con BBDD, no la uséis para sacar cadenas de texto por pantalla.

Según su web oficial:

Convierte caracteres especiales en entidades HTML

Debemos usar esta función cuando queramos escapar carateres que tienen un significado por si solos en HTML. Estos elemento son:

  • & ampersand: convertido a ‘&’
  • » comillas dobles: convertido a ‘"’
  • ‘ comilla simple: convertido a ‘'’
  • < menor que: convertido a ‘&lt;’
  • > mayor que: convertido a ‘&gt;’

Otros post interesantes:

Sintaxis de PHP htmlspecialchars()

Vamos con la sintaxis extraída de su web oficial:

Explico los parámetros de la función:

  • string: La función nos devuelve una cadena de texto.
  • $cadena_a_convertir (Obligatorio): Es la cadena que queremos pasarle a la función para convertir los caracteres a HTML.
  • $flags (Opcional): Especifica cómo manejar los caraceres, codificación no válida y el tipo de documento (doctype) utilizado.
    1. Las opciones de codificación de comillas son:
      • ENT_COMPAT: Codifica sólamente las comillas dobles.
      • ENT_QUOTES: Codifica sólamente las comillas simples y dobles.
      • ENT_NOQUOTES: No se codifica ninguna comilla.
    2. Opciones de codificaciones inválidas:
      • ENT_IGNORE: Ignora la codificación no válida para que la función no devuelva una cadena vacía. No recomendable por temas de seguridad.
      • ENT_SUBSTITUTE: Reemplaza las secuencias inválidas del código con un Carácter Unicode U+FFFD (UTF-8) o &#FFFD;.
      • ENT_DISALLOWED: Reemplaza los caracteres inválidos del código con un Carácter Unicode U+FFFD (UTF-8) o &#FFFD;. Muy válido para ficheros XML.
    3. Formato de manejo del código del doctype usado:
      • ENT_HTML401: Trata el código como HTML 4.01.
      • ENT_HTML5: Trata el código como HTML 5.
      • ENT_XML1: Trata el código como XML 1.
      • ENT_XHTML: Trata el código como XHTML.
  • $character set (Opcional): Tipo de codificación utilizada. El valor por defecto es es ISO-8859-1 en las versiones de PHP anteriores a 5.4 y UTF-8 en las siguientes. Los tipos soportados son: UTF-8, ISO-8859-1, ISO-8859-15, cp866, cp1251, cp1252, KOI8-R, BIG5, GB2312, BIG5-HKSCS, Shift_JIS, EUC-JP y MacRoman.
  • $double_encode (Opcional): TRUE o FALSE, Si está a TRUE la función convierte también las otras entidades HTML del string, por defecto es valor TRUE.

Ejemplo de PHP htmlspecialchars()

Vamos con un primer ejemplo de esta función de PHP para ver su funcionamiento básico:

Os explico el ejemplo:

  • Creo una variable con los caracteres especiales <, > y las «.
  • Escapo la cadena con htmlespecialchars.

Notaréis la utilidad de la función a la hora de andar con operaciones en BBDD. No la uséis para escapar cadenas y mostrarlas por pantalla.

Ejemplo para escapar comillas simples y dobles con PHP htmlspecialchars()

Vamos a ver con el paso de parámetros cómo escapar las comilas simples y dobles, en esta segunda demo veremos algunos de los parámetros anteriormente mencionados:

En el ejemplo os he dejado comentado lo que hace cada parámetro, os recuerdo que para explotar su utilidad debemos usarlo en sentencias clave como son las operaciones con BBDD. No las uséis para sacar datos por pantalla.

Función PHP htmlspecialchars_decode() para decodificar caracteres especiales

htmlspecialchars_decode() hace justo lo contrario que htmlspecialchars(), la definición oficial es:

Convierte entidades HTML de nuevo en caracteres especiales

Y las conversiones es la siguiente:

  • &amp; ampersand: convertido a &
  • &quot; comillas dobles: convertido a «
  • &#039; comilla simple: convertido a ‘
  • &lt; menor que: convertido a <
  • &gt; mayor que: convertido a >

Sintaxis de PHP htmlspecialchars_decode()

Vamos a ver la sintaxis de esta función extraída de su web oficial:

Explico los parámetros de la función:

  • string: La función nos devuelve una cadena de texto.
  • $cadena_a_convertir (Obligatorio): Es la cadena que queremos pasarle a la función para convertir los caracteres a HTML.
  • $flags (Opcional): Especifica cómo manejar los caraceres y el tipo de documento (doctype) utilizado.
    1. Las opciones de codificación de comillas son:
      • ENT_COMPAT: Decodifica sólamente las comillas dobles.
      • ENT_QUOTES: Decodifica sólamente las comillas simples y dobles.
      • ENT_NOQUOTES: No se decodifica ninguna comilla.
    2. Formato de manejo del código del doctype usado:
      • ENT_HTML401: Trata el código como HTML 4.01.
      • ENT_HTML5: Trata el código como HTML 5.
      • ENT_XML1: Trata el código como XML 1.
      • ENT_XHTML: Trata el código como XHTML.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies