Files
archived-doc-pt-br/reference/filter/constants.xml
2025-06-06 22:35:10 -03:00

1242 lines
36 KiB
XML
Executable File

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3cb239e6e98fc2b7353fca4149f08902d08b8100 Maintainer: leonardolara Status: ready --><!-- CREDITS: felipe,rafaelbernard,ae,leonardolara -->
<!-- Generated by xml_proto.php v2.4. Found in /scripts directory of phpdoc. -->
<appendix xml:id="filter.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.constants;
&extension.constants;
<variablelist>
<title>Constantes de Entrada</title>
<simpara>
Estas constantes são usadas por
<function>filter_input</function> e
<function>filter_input_array</function>.
</simpara>
<varlistentry xml:id="constant.input-post">
<term>
<constant>INPUT_POST</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.post">POST</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-get">
<term>
<constant>INPUT_GET</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.get">GET</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-cookie">
<term>
<constant>INPUT_COOKIE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.cookies">COOKIE</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-env">
<term>
<constant>INPUT_ENV</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.environment">ENV</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-server">
<term>
<constant>INPUT_SERVER</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.server">SERVER</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-session">
<term>
<constant>INPUT_SESSION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.session">SESSION</link>.
(Removida a partir do PHP 8.0.0; não estava implementada anteriormente)
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-request">
<term>
<constant>INPUT_REQUEST</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variáveis <link linkend="reserved.variables.request">REQUEST</link>.
(Removida a partir do PHP 8.0.0; não estava implementada anteriormente)
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.flags.generic">
<title>Opções Genéricas de Filtros</title>
<varlistentry xml:id="constant.filter-flag-none">
<term>
<constant>FILTER_FLAG_NONE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sem flags.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-require-scalar">
<term>
<constant>FILTER_REQUIRE_SCALAR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Opção usada para requerer que a entrada do filtro seja um escalar.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-require-array">
<term>
<constant>FILTER_REQUIRE_ARRAY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Opção usada para requerer que a entrada do filtro seja um <type>array</type>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-force-array">
<term>
<constant>FILTER_FORCE_ARRAY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Esta opção embrulha entradas encalares em um <type>array</type> de um elemento
para filtros que operam em arrays.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-null-on-failure">
<term>
<constant>FILTER_NULL_ON_FAILURE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Usa &null; ao invés de &false; em caso de falha.
</simpara>
<simpara>
Utilizável com qualquer filtro
<constant>FILTER_VALIDATE_<replaceable>*</replaceable></constant>
de validação.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.flags.sanitization">
<title>Opções de Filtro de Sanitização</title>
<varlistentry xml:id="constant.filter-flag-strip-low">
<term>
<constant>FILTER_FLAG_STRIP_LOW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Remove caracteres com valor ASCII menor que 32.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-strip-high">
<term>
<constant>FILTER_FLAG_STRIP_HIGH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Remove caracteres com valor ASCII maior que 127.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-strip-backtick">
<term>
<constant>FILTER_FLAG_STRIP_BACKTICK</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Remove caracteres de acento grave (<literal>`</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-encode-low">
<term>
<constant>FILTER_FLAG_ENCODE_LOW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Codifica caracteres com valor ASCII menor que 32.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-encode-high">
<term>
<constant>FILTER_FLAG_ENCODE_HIGH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Codifica caracteres com valor ASCII maior que 127.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-encode-amp">
<term>
<constant>FILTER_FLAG_ENCODE_AMP</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Codifica <literal>&amp;</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-no-encode-quotes">
<term>
<constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Não codifica aspas simples e duplas (<literal>'</literal>
e <literal>"</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-empty-string-null">
<term>
<constant>FILTER_FLAG_EMPTY_STRING_NULL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
<!-- TODO Document/check which filters accept this flag (FILTER_UNSAFE_RAW and FILTER_SANITIZE_STRING only) -->
Se a sanitização de uma string resultar em uma string vazia,
converte o valor para &null;.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation">
<title>Filtros de Validação</title>
<varlistentry xml:id="constant.filter-validate-bool">
<term>
<constant>FILTER_VALIDATE_BOOL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Retorna &true; para <literal>"1"</literal>,
<literal>"true"</literal>,
<literal>"on"</literal>
e <literal>"yes"</literal>.
</simpara>
<simpara>
Retorna &false; para <literal>"0"</literal>,
<literal>"false"</literal>,
<literal>"off"</literal>,
<literal>"no"</literal> e
<literal>""</literal>.
</simpara>
<simpara>
O valor de retorno para valores não booleanos depende da opção
<constant>FILTER_NULL_ON_FAILURE</constant>.
Se estiver definida, retorna &null;, caso contrário, &false;.
</simpara>
<variablelist xml:id="filter.constants.validation.bool.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<simpara>
Disponível a partir do PHP 8.0.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-boolean">
<term>
<constant>FILTER_VALIDATE_BOOLEAN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_VALIDATE_BOOL</constant>.
O sinônimo estava disponível antes da introdução de seu nome canônico
no PHP 8.0.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-int">
<term>
<constant>FILTER_VALIDATE_INT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida se o valor é um inteiro,
em caso de sucesso é convertido para o tipo <type>int</type>.
</simpara>
<note>
<simpara>
Valores string são aparados usando <function>trim</function>
antes da validação.
</simpara>
</note>
<variablelist xml:id="filter.constants.validation.int.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>min_range</literal></term>
<listitem>
<simpara>
Valor só é válido se for maior ou igual que o valor fornecido.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>max_range</literal></term>
<listitem>
<simpara>
Valor só é válido se for menor ou igual que o valor fornecido.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.int.flags">
<title>Constantes Opcionais</title>
<varlistentry xml:id="constant.filter-flag-allow-octal">
<term>
<constant>FILTER_FLAG_ALLOW_OCTAL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
<!-- TODO: Check that explicit octal prefix 0o and 0O are allowed -->
Permite inteiros em notação octal
(<literal>0[0-7]+</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-hex">
<term>
<constant>FILTER_FLAG_ALLOW_HEX</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permite inteiros em notação hexadecimal
(<literal>0x[0-9a-fA-F]+</literal>).
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-float">
<term>
<constant>FILTER_VALIDATE_FLOAT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida se o valor é um float,
em caso de sucesso é convertido para o tipo <type>float</type>.
</simpara>
<note>
<simpara>
Valores string são aparados usando <function>trim</function>
antes da validação.
</simpara>
</note>
<variablelist xml:id="filter.constants.validation.float.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>decimal</literal></term>
<listitem>
<simpara>
<!-- TODO -->
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>min_range</literal></term>
<listitem>
<simpara>
Valor só é válido se for maior ou igual que o valor fornecido.
Disponível a partir do PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>max_range</literal></term>
<listitem>
<simpara>
Valor só é válido se for menor ou igual que o valor fornecido.
Disponível a partir do PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.float.flags">
<title>Constantes opcionais</title>
<varlistentry>
<term>
<constant>FILTER_FLAG_ALLOW_THOUSAND</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aceita vírgulas (<literal>,</literal>),
que normalmente representam separador de milhares em inglês.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-regexp">
<term>
<constant>FILTER_VALIDATE_REGEXP</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida o valor comparando com a expressão regular informada pela opção
<literal>regexp</literal>.
</simpara>
<variablelist xml:id="filter.constants.validation.regex.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>regexp</literal></term>
<listitem>
<simpara>
Expressão regular <link linkend="book.pcre">compatível com Perl</link>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-url">
<term>
<constant>FILTER_VALIDATE_URL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida se o <acronym>URL</acronym> é válido conforme a
<link xlink:href="&url.rfc;2396">RFC 2396</link>.
</simpara>
<variablelist xml:id="filter.constants.validation.url.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.url.flags">
<title>Constantes Opcionais</title>
<varlistentry xml:id="constant.filter-flag-scheme-required">
<term>
<constant>FILTER_FLAG_SCHEME_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requer que o <acronym>URL</acronym> contenha uma parte de esquema.
</simpara>
<warning>
<simpara>
<emphasis>DESCONTINUADA</emphasis> a partir do PHP 7.3.0 e
<emphasis>REMOVIDA</emphasis> a partir do PHP 8.0.0.
A razão é que fica sempre implícita pelo filtro
<constant>FILTER_VALIDATE_URL</constant>.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-host-required">
<term>
<constant>FILTER_FLAG_HOST_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requer que o <acronym>URL</acronym> contenha uma parte de host.
</simpara>
<warning>
<simpara>
<emphasis>DESCONTINUADA</emphasis> a partir do PHP 7.3.0 e
<emphasis>REMOVIDA</emphasis> a partir do PHP 8.0.0.
A razão é que fica sempre implícita pelo filtro
<constant>FILTER_VALIDATE_URL</constant>.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-path-required">
<term>
<constant>FILTER_FLAG_PATH_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requer que o <acronym>URL</acronym> contenha uma parte de caminho.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-query-required">
<term>
<constant>FILTER_FLAG_QUERY_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requer que o <acronym>URL</acronym> contenha uma parte de consulta.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
Um <acronym>URL</acronym> válido pode não especificar o
protocolo <acronym>HTTP</acronym> (<literal>http://</literal>).
Portanto, uma validação adicional pode ser necessária para determinar se o
<acronym>URL</acronym> usa um protocolo esperado,
por exemplo, <literal>ssh://</literal> ou <literal>mailto:</literal>.
</simpara>
</warning>
<warning>
<simpara>
Este filtro só funciona em <acronym>URL</acronym>s <acronym>ASCII</acronym>.
Isto significa que os Nomes de Domínio Internacionalizados (IDN) serão sempre rejeitados.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-domain">
<term>
<constant>FILTER_VALIDATE_DOMAIN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida se o nome de domínio é válido de acordo com
<link xlink:href="&url.rfc;952">RFC 952</link>,
<link xlink:href="&url.rfc;1034">RFC 1034</link>,
<link xlink:href="&url.rfc;1035">RFC 1035</link>,
<link xlink:href="&url.rfc;1034">RFC 1123</link>,
<link xlink:href="&url.rfc;1034">RFC 2732</link>,
e
<link xlink:href="&url.rfc;2181">RFC 2181</link>.
</simpara>
<variablelist xml:id="filter.constants.validation.domain.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.domain.flags">
<title>Constantes Opcionais</title>
<varlistentry xml:id="constant.filter-flag-hostname">
<term>
<constant>FILTER_FLAG_HOSTNAME</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requer que hostnames iniciem com caracteres alfanuméricos e contenham
apenas caracteres alfanuméricos ou hífen.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-email">
<term>
<constant>FILTER_VALIDATE_EMAIL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verifica se o valor é um endereço válido de e-mail.
</simpara>
<simpara>
A validação é realizada conforme a sintaxe <literal>addr-spec</literal>
na
<link xlink:href="&url.rfc;822">RFC 822</link>.
Contudo, comentários, espaços em branco e domínios sem ponto
não são suportados, e por isso serão rejeitados.
</simpara>
<variablelist xml:id="filter.constants.validation.email.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.email.flags">
<title>Constantes Opcionais</title>
<varlistentry xml:id="constant.filter-flag-email-unicode">
<term>
<constant>FILTER_FLAG_EMAIL_UNICODE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aceita caracteres Unicode na parte local.
Disponível a partir do PHP 7.1.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
A validação de e-mail é complexa e a única maneira verdadeira de confirmar se um e-mail
é válido e existe é enviando um e-mail para o endereço.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-ip">
<term>
<constant>FILTER_VALIDATE_IP</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Valida o valor como um endereço IP.
</para>
<variablelist xml:id="filter.constants.validation.ip.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.ip.flags">
<title>Constantes Opcionais</title>
<varlistentry xml:id="constant.filter-flag-ipv4">
<term>
<constant>FILTER_FLAG_IPV4</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permite endereço IPv4.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-ipv6">
<term>
<constant>FILTER_FLAG_IPV6</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permite endereço IPv6.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-no-res-range">
<term>
<constant>FILTER_FLAG_NO_RES_RANGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Nega endereços reservados.
</simpara>
<simpara>
Estes são os intervalos marcados como
<literal>Reserved-By-Protocol</literal> (reservados por protocolo) na
<link xlink:href="&url.rfc;6890">RFC 6890</link>.
</simpara>
<para>
Para IPv4, corresponden aos seguintes intervalos:
<simplelist type="inline">
<member><literal>0.0.0.0/8</literal></member>
<member><literal>169.254.0.0/16</literal></member>
<member><literal>127.0.0.0/8</literal></member>
<member><literal>240.0.0.0/4</literal></member>
</simplelist>.
</para>
<para>
E para IPv6, corresponden aos seguintes intervalos:
<simplelist type="inline">
<member><literal>::1/128</literal></member>
<member><literal>::/128</literal></member>
<member><literal>::FFFF:0:0/96</literal></member>
<member><literal>FE80::/10</literal></member>
</simplelist>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-no-priv-range">
<term>
<constant>FILTER_FLAG_NO_PRIV_RANGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Nega endereços privados.
</simpara>
<para>
São os endereços IPv4 que estão nestas faixas:
<simplelist type="inline">
<member><literal>10.0.0.0/8</literal></member>
<member><literal>172.16.0.0/12</literal></member>
<member><literal>192.168.0.0/16</literal></member>
</simplelist>.
</para>
<simpara>
E são os endereços IPv6 que inicial com
<literal>FD</literal> ou <literal>FC</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-global-range">
<term>
<constant>FILTER_FLAG_GLOBAL_RANGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permite apenas endereços globais.
Podem ser encontrados na
<link xlink:href="&url.rfc;6890">RFC 6890</link>
onde o atributo <literal>Global</literal> é <literal>True</literal>.
Disponível a partir do PHP 8.2.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-mac">
<term>
<constant>FILTER_VALIDATE_MAC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida se o valor é um endereço MAC.
</simpara>
<variablelist xml:id="filter.constants.validation.mac.options">
<title>Opções disponíveis</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a retornar caso o filtro falhe.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.sanitization">
<title>Filtros de Sanitização</title>
<varlistentry xml:id="constant.filter-unsafe-raw">
<term>
<constant>FILTER_UNSAFE_RAW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtro não faz nada.
</simpara>
<simpara>
Entretanto, ele pode remover ou codificar caracteres especiais se usado em conjunto com
as opções <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
e <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>
de filtro de sanitização.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-default">
<term>
<constant>FILTER_DEFAULT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_UNSAFE_RAW</constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-string">
<term>
<constant>FILTER_SANITIZE_STRING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtro remove etiquetas e codifica HTML com aspas duplas e simples.
</simpara>
<simpara>
Opcionalmente, ele pode remover ou codificar caracteres especificados se usado junto
com as opções de filtro de sanitização
<constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
e <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</simpara>
<simpara>
O comportamento da codificação de aspas pode ser desativado usando a
opção de filtro <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>
</simpara>
<warning>
<simpara>
<emphasis>Descontinuado</emphasis> a partir do PHP 8.1.0,
use <function>htmlspecialchars</function> em seu lugar.
</simpara>
</warning>
<warning>
<simpara>
A maneira como esse filtro remove as etiquetas não é equivalente a
<function>strip_tags</function>.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-stripped">
<term>
<constant>FILTER_SANITIZE_STRIPPED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_SANITIZE_STRING</constant>.
</simpara>
<warning>
<simpara>
<emphasis>Descontinuado</emphasis> a partir do PHP 8.1.0,
use <function>htmlspecialchars</function> em seu lugar.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-encoded">
<term>
<constant>FILTER_SANITIZE_ENCODED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtra codifica uma string em URL.
</simpara>
<simpara>
Opcionalmente pode codificar caracteres especificados se usado junto com
as opções de filtro de sanitização
<constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
e <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-special-chars">
<term>
<constant>FILTER_SANITIZE_SPECIAL_CHARS</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Este filtra codifica, em HTML,
<simplelist type="inline">
<member><literal>'</literal></member>
<member><literal>"</literal></member>
<member><literal>&lt;</literal></member>
<member><literal>&gt;</literal></member>
<member><literal>&amp;</literal></member>
</simplelist>
e caracteres com um valor ASCII menor que 32.
</para>
<simpara>
Opcionalmente pode codificar caracteres especificados se usado junto com
as opções de filtro de sanitização <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>,
e pode codificar caracteres com valores ASCII
maiores que 127 usando <constant>FILTER_FLAG_ENCODE_HIGH</constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-full-special-chars">
<term>
<constant>FILTER_SANITIZE_FULL_SPECIAL_CHARS</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtro é equivalente a chamar <function>htmlspecialchars</function>
com <constant>ENT_QUOTES</constant> definida.
</simpara>
<simpara>
O comportamento da codificação de aspas pode ser desabilitado usando a
opção de filtro <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</simpara>
<warning>
<simpara>
Assim como <function>htmlspecialchars</function>, este filtro reconhece a
configuração INI <link linkend="ini.default-charset">default_charset</link>.
Se for detectada uma sequência de bytes que constitui um caractere inválido
no conjunto de caracteres atual, a string inteira será rejeitada,
resultando no retorno de uma string vazia.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-email">
<term>
<constant>FILTER_SANITIZE_EMAIL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sanitiza a string removendo todos os caracteres exceto
as letras latinas (<literal>[a-zA-Z]</literal>),
dígitos (<literal>[0-9]</literal>)
e os caracteres especiais
<literal>!#$%&amp;'*+-=?^_`{|}~@.[]</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-url">
<term>
<constant>FILTER_SANITIZE_URL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sanitiza a string removendo todos os caracteres exceto
as letras latinas (<literal>[a-zA-Z]</literal>),
dígitos (<literal>[0-9]</literal>)
e os caracteres especiais
<literal>$-_.+!*'(),{}|\\^~[]`&lt;&gt;#%";/?:@&amp;=</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-number-int">
<term>
<constant>FILTER_SANITIZE_NUMBER_INT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sanitiza a string removendo todos os caracteres exceto
(<literal>[0-9]</literal>), sinal de adição (<literal>+</literal>),
e sinal de subtração (<literal>-</literal>).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-number-float">
<term>
<constant>FILTER_SANITIZE_NUMBER_FLOAT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sanitiza a string removendo todos os caracteres exceto
(<literal>[0-9]</literal>), sinal de adição (<literal>+</literal>),
e sinal de subtração (<literal>-</literal>).
</simpara>
<variablelist xml:id="filter.constants.sanitization.float.flags">
<title>Constantes Opcionais</title>
<varlistentry xml:id="constant.filter-flag-allow-fraction">
<term>
<constant>FILTER_FLAG_ALLOW_FRACTION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aceita o caractere ponto (<literal>.</literal>),
que normalmente representa o separador entre as partes inteira
e fracionária em inglês.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-thousand">
<term>
<constant>FILTER_FLAG_ALLOW_THOUSAND</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aceita vírgulas (<literal>,</literal>),
que normalmente representam separador de milhares em inglês.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-scientific">
<term>
<constant>FILTER_FLAG_ALLOW_SCIENTIFIC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aceita números em notação científica permitindo os caracteres
<literal>e</literal> e <literal>E</literal>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
Se a opção <constant>FILTER_FLAG_ALLOW_FRACTION</constant> não for usada,
o separador de decimais será removido, alterando o valor recebido.
</simpara>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$number = '12.34';
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(4) "1234"
string(5) "12.34"
]]>
</screen>
</informalexample>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-add-slashes">
<term>
<constant>FILTER_SANITIZE_ADD_SLASHES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Aplica <function>addslashes</function> à entrada.
Disponível a partir do PHP 7.3.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-magic-quotes">
<term>
<constant>FILTER_SANITIZE_MAGIC_QUOTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>FILTER_SANITIZE_ADD_SLASHES</constant>.
</simpara>
<warning>
<simpara>
<emphasis>DESCONTINUADA</emphasis> a partir do PHP 7.3.0 e
<emphasis>REMOVIDA</emphasis> a partir do PHP 8.0.0.
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Filtro Definido pelo Usuário</title>
<varlistentry xml:id="constant.filter-callback">
<term>
<constant>FILTER_CALLBACK</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtro delega a filtragem a uma função definida pelo usuário.
O <type>callable</type> é passado através do
parâmetro <parameter>options</parameter> comom o valor associado à
chave <literal>'options'</literal>.
</simpara>
<para>
A função deve ter a seguinte assinatura:
<methodsynopsis>
<type>mixed</type><methodname><replaceable>callback</replaceable></methodname>
<methodparam><type>string</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<variablelist role="function_parameters">
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<simpara>
O valor a ser filtrado.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<note>
<simpara>
O valor retornado pela função será o valor retornado pela
função de filtro chamada.
</simpara>
</note>
<example>
<title>
Exemplo de uso de <constant>FILTER_CALLBACK</constant> para validar
um login
</title>
<programlisting role="php">
<![CDATA[
<?php
function validate_login($value): ?string
{
if (strlen($value) >= 5 && ctype_alnum($value)) {
return $value;
}
return null;
}
$login = "L0ginValido";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
$login = "login f&lso";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(11) "L0ginValido"
NULL
]]>
</screen>
</example>
<warning>
<simpara>
Este filtro não pode ser usado com nenhuma outra opção de filtro, como por exemplo,
<constant>FILTER_NULL_ON_FAILURE</constant>.
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->