<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.strings.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.htmlspecialchars.php',
    1 => 'htmlspecialchars',
    2 => 'Convierte caracteres especiales en entidades HTML',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'Funciones de strings',
  ),
  'prev' => 
  array (
    0 => 'function.htmlentities.php',
    1 => 'htmlentities',
  ),
  'next' => 
  array (
    0 => 'function.htmlspecialchars-decode.php',
    1 => 'htmlspecialchars_decode',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/strings/functions/htmlspecialchars.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.htmlspecialchars" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">htmlspecialchars</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">htmlspecialchars</span> &mdash; <span class="dc-title">Convierte caracteres especiales en entidades HTML</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.htmlspecialchars-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>htmlspecialchars</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code><span class="initializer"> = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$encoding</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$double_encode</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong></span></span><br>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   Algunos caracteres tienen significados especiales en HTML,
   y deben ser reemplazados por entidades HTML para conservar
   sus significados. Esta función retorna un string con estas modificaciones. Si se necesita que todas
   las subcadenas de entrada que están asociadas a entidades
   nombradas sean transformadas, se debe utilizar la función
   <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span>.
  </p>
  <p class="para">
   Si el string de entrada pasado a esta función y el documento final
   comparten el mismo juego de caracteres, esta función es suficiente para
   preparar la entrada para una inclusión en la mayoría de los contextos
   de un documento HTML. Sin embargo, si la entrada puede presentar caracteres
   que no están codificados en el juego de caracteres del documento final,
   y se desea preservar estos caracteres (como numéricos o
   entidades nombradas), esta función y la función <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span>
   (que solo codifica las subcadenas que tienen entidades nombradas equivalentes)
   no son suficientes. Se debe utilizar la función
   <span class="function"><a href="function.mb-encode-numericentity.php" class="function">mb_encode_numericentity()</a></span> en su lugar.
  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Reemplazos realizados</strong></caption>
    
     <thead>
      <tr>
       <th>Carácter</th>
       <th>Reemplazo</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><code class="literal">&amp;</code> (ampersand)</td>
       <td><code class="literal">&amp;amp;</code></td>
      </tr>

      <tr>
       <td><code class="literal">&quot;</code> (comillas dobles)</td>
       <td><code class="literal">&amp;quot;</code> excepto si <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong></td>
      </tr>

      <tr>
       <td><code class="literal">&#039;</code> (comilla simple)</td>
       <td>
        <code class="literal">&amp;#039;</code> (para <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>) o
        <code class="literal">&amp;apos;</code> (para
        <strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong>, <strong><code><a href="string.constants.php#constant.ent-xhtml">ENT_XHTML</a></code></strong> o
        <strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong>), pero solo cuando
        <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong> está definido
       </td>
      </tr>

      <tr>
       <td><code class="literal">&lt;</code> (menor que)</td>
       <td><code class="literal">&amp;lt;</code></td>
      </tr>

      <tr>
       <td><code class="literal">&gt;</code> (mayor que)</td>
       <td><code class="literal">&amp;gt;</code></td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.htmlspecialchars-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="para">
       El string a convertir.
      </p>
     </dd>
    
    
     <dt><code class="parameter">flags</code></dt>
     <dd>
      <p class="para">
       Una máscara de bits de uno o más flags siguientes, que determinan la forma
       en que las comillas serán gestionadas, cómo se manejarán las secuencias de código inválido, así como el tipo de documento utilizado. Por omisión, es
       <code class="literal">ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401</code>.
       <table class="doctable table">
        <caption><strong>Constantes disponibles para <code class="parameter">flags</code></strong></caption>
        
         <thead>
          <tr>
           <th>Constante</th>
           <th>Descripción</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong></td>
           <td>Convierte las comillas dobles e ignora las comillas simples.</td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong></td>
           <td>Convierte las comillas dobles y las comillas simples.</td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong></td>
           <td>Ignora las comillas dobles y las comillas simples.</td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong></td>
           <td>
            Ignora las secuencias de caracteres inválidas en lugar de retornar un
            string vacío. El uso de este flag está fuertemente
            desaconsejado por
            <a href="http://unicode.org/reports/tr36/#Deletion_of_Noncharacters" class="link external">&raquo;&nbsp;razones de seguridad</a>.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong></td>
           <td>
            Reemplaza las secuencias de código inválido con un carácter de reemplazo
            Unicode U+FFFD (UTF-8) o &amp;#xFFFD; (de lo contrario) en lugar de retornar un
            string vacío.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-disallowed">ENT_DISALLOWED</a></code></strong></td>
           <td>
            Reemplaza los puntos de código inválidos del documento proporcionado con
            un carácter de reemplazo Unicode U+FFFD (UTF-8) o &amp;#xFFFD;
            (de lo contrario) en lugar de dejarlo tal cual. Esto puede ser útil para,
            por ejemplo, asegurar el correcto formato de documentos XML que contienen
            contenido externo.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong></td>
           <td>
            Maneja el código como HTML 4.01.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong></td>
           <td>
            Maneja el código como XML 1.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-xhtml">ENT_XHTML</a></code></strong></td>
           <td>
            Maneja el código como XHTML.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong></td>
           <td>
            Maneja el código como HTML 5.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
     </dd>
    
    
     <dt><code class="parameter">encoding</code></dt>
     <dd>
      
 <p class="para">
 Un argumento opcional que define el codificado utilizado durante
 la conversión de caracteres.
 </p>

 <p class="para">
 Si se omite, el valor por omisión del parámetro <code class="parameter">encoding</code>
 es el valor de la opción de configuración
 <a href="ini.core.php#ini.default-charset" class="link">default_charset</a>.
 </p>

 <p class="para">
 Aunque este argumento es técnicamente opcional, se recomienda encarecidamente
 especificar el valor correcto para su código si la opción de configuración
 <a href="ini.core.php#ini.default-charset" class="link">default_charset</a>
 ha sido definida incorrectamente para la entrada proporcionada.
 </p>
 
      <p class="para">
       Para esta función, los encodings
       <code class="literal">ISO-8859-1</code>, <code class="literal">ISO-8859-15</code>,
       <code class="literal">UTF-8</code>, <code class="literal">cp866</code>,
       <code class="literal">cp1251</code>, <code class="literal">cp1252</code>, y
       <code class="literal">KOI8-R</code> son equivalentes, siempre que
       el parámetro <code class="parameter">string</code> sea válido
       para el encoding, en el sentido de que los caracteres afectados por la función
       <span class="function"><strong>htmlspecialchars()</strong></span> ocupen la misma posición
       en todos estos encodings.
      </p>
      



<p class="para">
 Están soportados los siguientes juegos de caracteres:
 <table class="doctable table">
  <caption><strong>Juegos de caracteres soportados</strong></caption>
  
   <thead>
    <tr>
     <th>Juego de caracteres</th>
     <th>Alias</th>
     <th>Descripción</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td>ISO-8859-1</td>
     <td>ISO8859-1</td>
     <td>
      Europeo occidental, Latin-1.
     </td>
    </tr>

    <tr>
     <td>ISO-8859-5</td>
     <td>ISO8859-5</td>
     <td>
      Juego de caracteres cirílicos poco usado (Latin/Cyrillic).
     </td>
    </tr>

    <tr>
     <td>ISO-8859-15</td>
     <td>ISO8859-15</td>
     <td>
      Europeo occidental, Latin-9. Añade el signo de euro, y letras del francés
      y finlandés ausentes en Latin-1 (ISO-8859-1).
     </td>
    </tr>

    <tr>
     <td>UTF-8</td>
     <td class="empty">&nbsp;</td>
     <td>
      Unicode de 8 bit multibyte compatible con ASCII.
     </td>
    </tr>

    <tr>
     <td>cp866</td>
     <td>ibm866, 866</td>
     <td>
      Juego de caracteres cirílico específico de DOS.
     </td>
    </tr>

    <tr>
     <td>cp1251</td>
     <td>Windows-1251, win-1251, 1251</td>
     <td>
      Juego de caracteres cirílico específico de Windows.
     </td>
    </tr>

    <tr>
     <td>cp1252</td>
     <td>Windows-1252, 1252</td>
     <td>
      Juego de caracteres específico de Windows para Europa occidental.
     </td>
    </tr>

    <tr>
     <td>KOI8-R</td>
     <td>koi8-ru, koi8r</td>
     <td>
      Ruso.
     </td>
    </tr>

    <tr>
     <td>BIG5</td>
     <td>950</td>
     <td>
      Chino tradicional, usado principalmente en Taiwán.
     </td>
    </tr>

    <tr>
     <td>GB2312</td>
     <td>936</td>
     <td>
      Chino simplificado, juego de caracteres estándar nacional.
     </td>
    </tr>

    <tr>
     <td>BIG5-HKSCS</td>
     <td class="empty">&nbsp;</td>
     <td>
      Big5 con extensiones de Hong Kong, chino tradicional.
     </td>
    </tr>

    <tr>
     <td>Shift_JIS</td>
     <td>SJIS, SJIS-win, cp932, 932</td>
     <td>
      Japonés
     </td>
    </tr>

    <tr>
     <td>EUC-JP</td>
     <td>EUCJP, eucJP-win</td>
     <td>
      Japonés
     </td>
    </tr>

    <tr>
     <td>MacRoman</td>
     <td class="empty">&nbsp;</td>
     <td>
      Juego de caracteres que fue utilizado por Mac OS.
     </td>
    </tr>

    <tr>
     <td><code class="literal">&#039;&#039;</code></td>
     <td class="empty">&nbsp;</td>
     <td>
      Un string vacío activa la detección desde la codificación del script (Zend multibyte),
      <a href="ini.core.php#ini.default-charset" class="link">default_charset</a> y la actual
      configuración regional (véase <span class="function"><a href="function.nl-langinfo.php" class="function">nl_langinfo()</a></span> y
      <span class="function"><a href="function.setlocale.php" class="function">setlocale()</a></span>), en este orden. No se recomienda.
     </td>
    </tr>

   </tbody>
  
 </table>

 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <span class="simpara">
   No se reconoce cualquier otro juego de caracteres. Será utilizada en su lugar
   la codificación por defecto y se emitirá una advertencia.
  </span>
 </p></blockquote>
</p>


     </dd>
    
    
     <dt><code class="parameter">double_encode</code></dt>
     <dd>
      <p class="para">
       Cuando el parámetro <code class="parameter">double_encode</code> está desactivado,
       PHP no codificará las entidades html existentes; por omisión, todo es convertido.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.htmlspecialchars-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   El string convertido.
  </p>
  <p class="para">
   Si el string de entrada <code class="parameter">string</code> contiene una
   secuencia de código inválida en el parámetro
   <code class="parameter">encoding</code> proporcionado, se retornará un string vacío
   a menos que el flag <strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong> o
   <strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong> esté definido.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.htmlspecialchars-changelog">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.1.0</td>
      <td>
       <code class="parameter">flags</code> cambió de <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong> a
       <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong> | <strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong> | <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.htmlspecialchars-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>htmlspecialchars()</strong></span></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$new </span><span style="color: #007700">= </span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;a href='test'&gt;Test&lt;/a&gt;"</span><span style="color: #007700">, </span><span style="color: #0000BB">ENT_QUOTES</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$new</span><span style="color: #007700">; </span><span style="color: #FF8000">// &amp;lt;a href=&amp;#039;test&amp;#039;&amp;gt;Test&amp;lt;/a&amp;gt;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.htmlspecialchars-notes">
  <h3 class="title">Notas</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Tenga en cuenta que esta función no realiza ningún otro reemplazo que los
    que están listados anteriormente. Para realizar un reemplazo completo,
    consulte <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span>.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    En el caso de un valor ambiguo para <code class="parameter">flags</code>,
    se aplican las siguientes reglas:
   </p>
   <p class="para">
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Cuando ninguno de <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong> está presente,
       el valor por omisión es <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Cuando más de uno de <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong> están presentes,
       <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong> tiene la mayor prioridad,
       seguido de <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Cuando ninguno de <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-xhtml">ENT_XHTML</a></code></strong>, <strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong> está presente,
       el valor por omisión es <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Cuando más de uno de <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-xhtml">ENT_XHTML</a></code></strong>, <strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong> están presentes,
       <strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong> tiene la mayor prioridad,
       seguido de <strong><code><a href="string.constants.php#constant.ent-xhtml">ENT_XHTML</a></code></strong>, <strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong> y
       <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Cuando más de uno de <strong><code><a href="string.constants.php#constant.ent-disallowed">ENT_DISALLOWED</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong>,
       <strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong> están presentes,
       <strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong> tiene la mayor prioridad,
       seguido de <strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong>.
      </span>
     </li>
    </ul>
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.htmlspecialchars-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.get-html-translation-table.php" class="function" rel="rdfs-seeAlso">get_html_translation_table()</a> - Devuelve la tabla de traducci&oacute;n de entidades utilizada por htmlspecialchars y htmlentities</span></li>
    <li><span class="function"><a href="function.htmlspecialchars-decode.php" class="function" rel="rdfs-seeAlso">htmlspecialchars_decode()</a> - Convierte las entidades HTML especiales en caracteres</span></li>
    <li><span class="function"><a href="function.strip-tags.php" class="function" rel="rdfs-seeAlso">strip_tags()</a> - Elimina las etiquetas HTML y PHP de un string</span></li>
    <li><span class="function"><a href="function.htmlentities.php" class="function" rel="rdfs-seeAlso">htmlentities()</a> - Convierte todos los caracteres elegibles en entidades HTML</span></li>
    <li><span class="function"><a href="function.nl2br.php" class="function" rel="rdfs-seeAlso">nl2br()</a> - Inserta un salto de l&iacute;nea HTML en cada nueva l&iacute;nea</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>