Los últimos tutoriales de desarrollo web
 

PHP htmlspecialchars() Function

<String Referencia PHP

Ejemplo

Convertir los caracteres predefinidos "<" (less than) y ">" (greater than) a entidades HTML:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

La salida HTML del código anterior será (View Source) :

<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

La salida del navegador del código anterior será:

This is some <b>bold</b> text.
Ejecutar ejemplo »

Definición y Uso

El htmlspecialchars() función convierte algunos caracteres predefinidos para las entidades HTML.

Los personajes predefinidos son:

  • Y (ampersand) se convierte en & amp;
  • " (double quote) se convierte en & quot;
  • ' (single quote) se convierte en & # 039;
  • < (less than) se convierte en & lt;
  • > (greater than) se convierte en & gt;

Consejo: para convertir las entidades HTML especiales volver a los caracteres, utilice el htmlspecialchars_decode() función.


Sintaxis

htmlspecialchars( string,flags,character-set,double_encode )

Parámetro Descripción
string Necesario. Especifica la cadena para convertir
flags Opcional. Especifica cómo manejar citas, codificación no válida y el tipo de documento utilizado.

Los estilos de cotización disponibles son:

  • ENT_COMPAT - por defecto. Codifica sólo comillas dobles
  • ENT_QUOTES - Codifica comillas dobles e individuales
  • ENT_NOQUOTES - ¿No codificar las comillas

codificación no válida:

  • ENT_IGNORE - Ignora codificación no válida en lugar de tener la función devuelve una cadena vacía. Debe evitarse, ya que puede tener implicaciones de seguridad.
  • ENT_SUBSTITUTE - Reemplaza codificación no válida para un juego de caracteres especificado con una sustitución de caracteres Unicode U + FFFD (UTF-8) o & # FFFD; en lugar de devolver una cadena vacía.
  • ENT_DISALLOWED - Reemplaza los puntos de código que no son válidos en el tipo de documento especificado con una sustitución de caracteres Unicode U + FFFD (UTF-8) o & # FFFD;

banderas adicionales para especificar el tipo de documento utilizado:

  • ENT_HTML401 - por defecto. Manejar código como HTML 4.01
  • ENT_HTML5 - Mango de código como HTML 5
  • ENT_XML1 - Mango código XML como 1
  • ENT_XHTML - Mango código como XHTML
character-set Opcional. Una cadena que especifica el conjunto de caracteres a utilizar.

Los valores permitidos son:

  • UTF-8 - Default. ASCII compatibles multi-byte Unicode de 8 bits
  • ISO-8859-1 - Europa Occidental
  • ISO-8859-15 - Europa occidental (añade el símbolo del Euro + letras francesas y finlandesas que faltan en la norma ISO-8859-1)
  • CP866 - DOS específico juego de caracteres cirílico
  • CP1251 - específico para Windows juego de caracteres cirílico
  • CP1252 - juego de caracteres de Windows específica para Europa Occidental
  • KOI8-R - Rusia
  • Big5 - chino tradicional, utilizado principalmente en Taiwán
  • GB2312 - chino simplificado, conjunto de caracteres estándar nacional
  • Big5-HKSCS - Big5 con extensiones de Hong Kong
  • Shift_JIS - Japonés
  • EUC-JP - Japonés
  • MacRoman - juego de caracteres que fue utilizado por Mac OS

Note: no reconocidos conjuntos de caracteres serán ignoradas y reemplazadas por la norma ISO-8859-1 en las versiones anteriores a PHP 5.4. A partir de PHP 5.4, se ignorará una sustituye por UTF-8.

double_encode Opcional. Un valor booleano que especifica si se codifican entidades HTML existente o no.
  • VERDADERO - por defecto. Convertirá todo
  • FALSO - no codificará entidades HTML existente

Detalles técnicos

Valor de retorno: Devuelve la cadena convertida

Si la cadena contiene codificación no válida, devolverá una cadena vacía, a menos que se fijan bien el ENT_IGNORE o banderas ENT_SUBSTITUTE
Versión de PHP: 4+
cambios: El valor predeterminado para el parámetro juego de caracteres fue cambiado a UTF-8 en PHP 5

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 y ENT_XHTML se añadieron en PHP 5.4

ENT_IGNORE se añadió en PHP 5.3

El parámetro double_encode se añadió en PHP 5.2.3

El parámetro juego de caracteres se añadió en PHP 4.1

Más ejemplos

Ejemplo 1

Convertir algunos caracteres predefinidos para las entidades HTML:

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

La salida HTML del código anterior será (View Source) :

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

La salida del navegador del código anterior será:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Ejecutar ejemplo »

Ejemplo 2

Convertir comillas dobles a entidades HTML:

<?php
$str = 'I love "PHP" .';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

La salida HTML del código anterior será (View Source) :

<!DOCTYPE html>
<html>
<body>
I love &quot;PHP&quot;.
</body>
</html>

La salida del navegador del código anterior será:

I love "PHP" .
Ejecutar ejemplo »

<String Referencia PHP