<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.htmlspecialchars.php',
    1 => 'htmlspecialchars',
    2 => 'Converte caracteres especiais para entidades HTML',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'Fun&ccedil;&otilde;es de String',
  ),
  'prev' => 
  array (
    0 => 'function.htmlentities.php',
    1 => 'htmlentities',
  ),
  'next' => 
  array (
    0 => 'function.htmlspecialchars-decode.php',
    1 => 'htmlspecialchars_decode',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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">Converte caracteres especiais para entidades HTML</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.htmlspecialchars-description">
  <h3 class="title">Descrição</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">
   Certos caracteres têm significado especial em HTML, e devem
   ser representados por entidades HTML se for necessário preservar seus
   significados. Esta função retorna uma string com estas
   conversões realizadas. Se for necessário traduzir todas as substrings de entrada
   que têm entidades nomeadas associadas, use <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span>
   no lugar desta função.
  </p>
  <p class="para">
   Se a string de entrada passada para esta função e o documento final compartilham o
   mesmo conjunto de caracteres, esta função é suficiente para preparar a entrada para
   inclusão na maioria dos contextos de um documento HTML. Se, por outro lado, a entrada puder
   representar caracteres que não são codificados no conjunto de caracteres do documento final,
   e for necessário reter esses caracteres (como entidades numéricas ou nomeadas),
   tanto esta funçã quanto <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span> (que apenas codifica
   substrings que têm entidades nomeadas equivalentes) podem ser insuficientes.
   Pode ser necessário usar <span class="function"><a href="function.mb-encode-numericentity.php" class="function">mb_encode_numericentity()</a></span> no lugar desta função.
  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Traduções realizadas</strong></caption>
    
     <thead>
      <tr>
       <th>Caractere</th>
       <th>Substituição</th>
      </tr>

     </thead>

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

      <tr>
       <td><code class="literal">&quot;</code> (asplas duplas)</td>
       <td><code class="literal">&amp;quot;</code>, a menos que <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong> esteja definida</td>
      </tr>

      <tr>
       <td><code class="literal">&#039;</code> (aspas simples)</td>
       <td>
        <code class="literal">&amp;#039;</code> (para <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>) ou <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> ou
        <strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong>), mas apenas quando
        <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong> estiver definida
       </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> (maior 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">
       A <span class="type"><a href="language.types.string.php" class="type string">string</a></span> a ser convertida.
      </p>
     </dd>
    
    
     <dt><code class="parameter">flags</code></dt>
     <dd>
      <p class="para">
       Uma máscara de bits de uma ou mais das opções a seguir, que especificam como lidar com aspas,
       com sequências de unidade de código inválidas e o tipo de documento usado. O padrão é
       <code class="literal">ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401</code>.
       <table class="doctable table">
        <caption><strong>Constantes disponíveis para <code class="parameter">flags</code></strong></caption>
        
         <thead>
          <tr>
           <th>Nome da Constante</th>
           <th>Descrição</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>Converte aspas duplas e não converte aspas simples.</td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong></td>
           <td>Converte tanto aspas duplas quanto simples.</td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong></td>
           <td>Não converte aspas duplas ou simples.</td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong></td>
           <td>
            Descarta silenciosamente as sequências de unidade de código inválidas ao invés de retornar
            uma string vazia. É desencorajado o uso desta já que
            <a href="http://unicode.org/reports/tr36/#Deletion_of_Noncharacters" class="link external">&raquo;&nbsp;podem haver implicações em segurança</a>.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong></td>
           <td>
            Substitui sequências de unidade de código inválidas com um Caractere de Substituição Unicode
            U+FFFD (UTF-8) ou &amp;#xFFFD; ao invés de retornar uma string vazia.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-disallowed">ENT_DISALLOWED</a></code></strong></td>
           <td>
            Substitui pontos de código inválidos para o tipo de documento fornecido com um
            Caractere de Substituição Unicode U+FFFD (UTF-8) ou &amp;#xFFFD;
            ao invés de deixá-lo inalterado. Isto pode ser útil, por
            exemplo, para garantir a boa formatação de documentos XML com
            conteúdo externo incluído.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong></td>
           <td>
            Lida com o 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>
            Lida com o 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>
            Lida com o 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>
            Lida com o código como HTML 5.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
     </dd>
    
    
     <dt><code class="parameter">encoding</code></dt>
     <dd>
      
 <p class="para">
  Um argumento opcional que define a codificação usada na conversão de caracteres.
 </p>

 <p class="para">
  Se omitido, <code class="parameter">encoding</code> assume como padrão o valor da
  opção de configuração <a href="ini.core.php#ini.default-charset" class="link">default_charset
  </a>.
 </p>

 <p class="para">
  Embora este argumento seja tecnicamente opcional, especificar o valor correto
  para o código é altamente recomendável
  se a opção de configuração <a href="ini.core.php#ini.default-charset" class="link">default_charset</a>
  puder ser definida incorretamente para a entrada fornecida.
 </p>

      <p class="para">
       Para os propósitos desta função, as codificações
       <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> e
       <code class="literal">KOI8-R</code> são efetivamente equivalentes, desde que o parâmetro
       <code class="parameter">string</code> em si seja válido para a codificação, já que
       os caracteres afetados por <span class="function"><strong>htmlspecialchars()</strong></span> ocupam
       as mesmas posições em todas estas codificações.
      </p>
      

<p class="para">
 Os seguintes conjuntos de caracteres são suportados:
 <table class="doctable table">
  <caption><strong>Conjuntos de caracteres suportados</strong></caption>
  
   <thead>
    <tr>
     <th>Conjunto de caracteres</th>
     <th>Apelidos</th>
     <th>Descrição</th>
    </tr>

   </thead>

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

    <tr>
     <td>ISO-8859-5</td>
     <td>ISO8859-5</td>
     <td>
      Conjunto de caracteres cirílicos, pouco usado (latim/cirílico).
     </td>
    </tr>

    <tr>
     <td>ISO-8859-15</td>
     <td>ISO8859-15</td>
     <td>
      Western European, Latin-9. Adiciona o símbolo do Euro, letras francesas e finlandesas
      faltantes no Latin-1 (ISO-8859-1).
     </td>
    </tr>

    <tr>
     <td>UTF-8</td>
     <td class="empty">&nbsp;</td>
     <td>
      Código de multi-byte 8-bits Unicode compatível com ASCII.
     </td>
    </tr>

    <tr>
     <td>cp866</td>
     <td>ibm866, 866</td>
     <td>
      Conjunto de caracteres do DOS específico para o russo.
     </td>
    </tr>

    <tr>
     <td>cp1251</td>
     <td>Windows-1251, win-1251, 1251</td>
     <td>
      Conjunto de caracteres do Windows específico para o russo.
     </td>
    </tr>

    <tr>
     <td>cp1252</td>
     <td>Windows-1252, 1252</td>
     <td>
      Conjunto de caracteres do Windows específico para a Europa Ocidental.
     </td>
    </tr>

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

    <tr>
     <td>BIG5</td>
     <td>950</td>
     <td>
      Chinês tradicional, usado principalmente em Taiwan.
     </td>
    </tr>

    <tr>
     <td>GB2312</td>
     <td>936</td>
     <td>
      Chinês simplificado, conjunto de caracteres padrão nacional.
     </td>
    </tr>

    <tr>
     <td>BIG5-HKSCS</td>
     <td class="empty">&nbsp;</td>
     <td>
      Big5 com extensões de Hong Kong, chinês 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>
      Conjunto de caracteres que era usado pelo Mac OS.
     </td>
    </tr>

    <tr>
     <td><code class="literal">&#039;&#039;</code></td>
     <td class="empty">&nbsp;</td>
     <td>
      Uma string vazia ativa a detecção a partir de codificação de script (multibyte Zend),
      <a href="ini.core.php#ini.default-charset" class="link">conjunto padrão de caracteres</a> e localidade
      atual (consulte <span class="function"><a href="function.nl-langinfo.php" class="function">nl_langinfo()</a></span> e
      <span class="function"><a href="function.setlocale.php" class="function">setlocale()</a></span>), nesta ordem. Não recomendado.
     </td>
    </tr>

   </tbody>
  
 </table>

 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <span class="simpara">
   Nenhum outro conjunto de caracteres é reconhecido. A codificação padrão será
   usada no lugar e um alerta será emitido.
  </span>
 </p></blockquote>
</p>


     </dd>
    
    
     <dt><code class="parameter">double_encode</code></dt>
     <dd>
      <p class="para">
       Quando <code class="parameter">double_encode</code> estiver desligada, o PHP não
       codificará entidades HTML existentes, o padrão é converter tudo.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.htmlspecialchars-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   A <span class="type"><a href="language.types.string.php" class="type string">string</a></span> convertida.
  </p>
  <p class="para">
   Se a <code class="parameter">string</code> de entrada contiver uma sequência de unidade de código
   inválida na codificação informada em <code class="parameter">encoding</code>, uma string vazia
   será retornada, a menos que <strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong> ou
   <strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong> esteja definida.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.htmlspecialchars-changelog">
  <h3 class="title">Registro de Alterações</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versão</th>
      <th>Descrição</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.1.0</td>
      <td>
       O padrão para <code class="parameter">flags</code> mudou de <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong> para <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">Exemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Exemplo de <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">
    Observe que esta função não traduz nada além do que
    está listado acima. Para tradução completa de entidade, 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">
    Em caso de um valor ambíguo no parâmetro <code class="parameter">flags</code>, as seguintes regras se aplicam:
   </p>
   <p class="para">
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Quando nenhuma das constantes <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> ou
       <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong> estiver presente, o padrão é <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Quando mais que uma das constantes <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> ou
       <strong><code><a href="string.constants.php#constant.ent-noquotes">ENT_NOQUOTES</a></code></strong> estiverem presentes, <strong><code><a href="string.constants.php#constant.ent-quotes">ENT_QUOTES</a></code></strong> tem a
       maior precedência, seguida por <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Quando nenhuma das constantes <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> ou <strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong> estiver presente, o padrão é
       <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Quando mais que uma das constantes <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> ou <strong><code><a href="string.constants.php#constant.ent-xml1">ENT_XML1</a></code></strong> estiverem presentes,
       <strong><code><a href="string.constants.php#constant.ent-html5">ENT_HTML5</a></code></strong> tem a maior precedência,
       seguida por <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> e <strong><code><a href="string.constants.php#constant.ent-html401">ENT_HTML401</a></code></strong>.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Quando mais que uma das constantes <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> ou
       <strong><code><a href="string.constants.php#constant.ent-substitute">ENT_SUBSTITUTE</a></code></strong> estiverem presentes, <strong><code><a href="string.constants.php#constant.ent-ignore">ENT_IGNORE</a></code></strong> tem a
       maior precedência, seguida por <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">Veja Também</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> - Retorna a tabela de tradu&ccedil;&atilde;o usada por htmlspecialchars e htmlentities</span></li>
    <li><span class="function"><a href="function.htmlspecialchars-decode.php" class="function" rel="rdfs-seeAlso">htmlspecialchars_decode()</a> - Converte entidades especiais HTML de volta para caracteres</span></li>
    <li><span class="function"><a href="function.strip-tags.php" class="function" rel="rdfs-seeAlso">strip_tags()</a> - Retira as tags HTML e PHP de uma string</span></li>
    <li><span class="function"><a href="function.htmlentities.php" class="function" rel="rdfs-seeAlso">htmlentities()</a> - Converte todos os caracteres aplic&aacute;veis em entidades HTML</span></li>
    <li><span class="function"><a href="function.nl2br.php" class="function" rel="rdfs-seeAlso">nl2br()</a> - Insere quebras de linha HTML antes de todos os caracteres de nova linha em um string</span></li>
   </ul>
  </p>
 </div>


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