1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 07:22:16 +01:00
Files
archived-doc-es/reference/filter/constants.xml
Julio Napurí fd7237baa9 fix(translation): update references (#291)
* fix(translation): update references

* Reviewed

Made some corrections

---------

Co-authored-by: Marcos Porto Mariño <php@marcospor.to>
2025-10-25 12:15:07 +02:00

1245 lines
37 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9b09581bfdd1fa1c33daa740ad49599cf665cff4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: Marqitos -->
<!-- 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 son utilizadas por
<function>filter_input</function> y
<function>filter_input_array</function>.
</simpara>
<varlistentry xml:id="constant.input-post">
<term>
<constant>INPUT_POST</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <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>
Variables <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>
Variables <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>
Variables <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>
Variables <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>
Variables <link linkend="reserved.variables.session">SESSION</link>.
(Eliminado a partir de PHP 8.0.0; no estaba implementado previamente)
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.input-request">
<term>
<constant>INPUT_REQUEST</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Variables <link linkend="reserved.variables.request">REQUEST</link>.
(Eliminado a partir de PHP 8.0.0; no estaba implementado previamente)
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.flags.generic">
<title>Flags genéricos de filtro</title>
<varlistentry xml:id="constant.filter-flag-none">
<term>
<constant>FILTER_FLAG_NONE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sin flags.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-require-scalar">
<term>
<constant>FILTER_REQUIRE_SCALAR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Flag utilizado para requerir que la entrada del filtro sea un escalar.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-require-array">
<term>
<constant>FILTER_REQUIRE_ARRAY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Flag utilizado para requerir que la entrada del filtro sea un <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>
Este flag envuelve las entradas escalares en un <type>array</type> de un elemento
para filtros que operan sobre 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>
Usar &null; en lugar de &false; en caso de fallo.
</simpara>
<simpara>
Utilizable con cualquier filtro de validación
<constant>FILTER_VALIDATE_<replaceable>*</replaceable></constant>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.flags.sanitization">
<title>Flags de filtro de saneamiento</title>
<varlistentry xml:id="constant.filter-flag-strip-low">
<term>
<constant>FILTER_FLAG_STRIP_LOW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Elimina caracteres con 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>
Elimina caracteres con valor ASCII mayor 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>
Elimina caracteres de comilla invertida (<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 con 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 con valor ASCII mayor 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>
Las comillas simples y dobles (<literal>'</literal> y <literal>"</literal>)
no serán codificadas.
</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) -->
Si el saneamiento de un string resulta en un string vacío,
convierte el valor a &null;
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation">
<title>Filtros de validación</title>
<varlistentry xml:id="constant.filter-validate-bool">
<term>
<constant>FILTER_VALIDATE_BOOL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Devuelve &true; para <literal>"1"</literal>,
<literal>1</literal> incluyendo notaciones binarias, octales y hexadecimales, <literal>1.0</literal>,
<literal>"true"</literal>, <literal>true</literal>,
<literal>"on"</literal>,
y <literal>"yes"</literal>.
</simpara>
<simpara>
Devuelve &false; para <literal>"0"</literal>,
<literal>0</literal> incluyendo notaciones binarias, octales y hexadecimales, <literal>0.0</literal>,
<literal>"false"</literal>, <literal>false</literal>,
<literal>"off"</literal>,
<literal>"no"</literal>, y
<literal>""</literal>.
</simpara>
<simpara>
Los valores de string se comparan sin distinguir entre mayúsculas y minúsculas.
El valor de retorno para valores no booleanos depende de
<constant>FILTER_NULL_ON_FAILURE</constant>.
Si está configurado, se devuelve &null;, de lo contrario se devuelve &false;.
</simpara>
<variablelist xml:id="filter.constants.validation.bool.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<simpara>
Disponible a partir de 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>.
El alias estaba disponible antes de la introducción de su nombre canónico
en 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 si el valor es un entero,
en caso de éxito se convierte al tipo <type>int</type>.
</simpara>
<note>
<simpara>
Los valores string son recortados usando <function>trim</function>
antes de la validación.
</simpara>
</note>
<variablelist xml:id="filter.constants.validation.int.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>min_range</literal></term>
<listitem>
<simpara>
El valor solo es válido si es mayor o igual que el valor proporcionado.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>max_range</literal></term>
<listitem>
<simpara>
El valor solo es válido si es menor o igual que el valor proporcionado.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.int.flags">
<title>Flags opcionales</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 enteros en notación 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 enteros en notación 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 si el valor es un float,
en caso de éxito se convierte al tipo <type>float</type>.
</simpara>
<note>
<simpara>
Los valores string son recortados usando <function>trim</function>
antes de la validación.
</simpara>
</note>
<variablelist xml:id="filter.constants.validation.float.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>decimal</literal></term>
<listitem>
<simpara>
<!-- TODO -->
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>min_range</literal></term>
<listitem>
<simpara>
El valor solo es válido si es mayor o igual que el valor proporcionado.
Disponible a partir de PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>max_range</literal></term>
<listitem>
<simpara>
El valor solo es válido si es menor o igual que el valor proporcionado.
Disponible a partir de PHP 7.4.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.float.flags">
<title>Flags opcionales</title>
<varlistentry>
<term>
<constant>FILTER_FLAG_ALLOW_THOUSAND</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Acepta comas (<literal>,</literal>),
que normalmente representan el separador de miles.
</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 el valor contra la expresión regular proporcionada por la
opción <literal>regexp</literal>.
</simpara>
<variablelist xml:id="filter.constants.validation.regex.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>regexp</literal></term>
<listitem>
<simpara>
Expresión regular <link linkend="book.pcre">compatible con 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 si la <acronym>URL</acronym> es válido según
<link xlink:href="&url.rfc;2396">RFC 2396</link>.
</simpara>
<variablelist xml:id="filter.constants.validation.url.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.url.flags">
<title>Flags opcionales</title>
<varlistentry xml:id="constant.filter-flag-scheme-required">
<term>
<constant>FILTER_FLAG_SCHEME_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requiere que la <acronym>URL</acronym> contenga una parte de esquema.
</simpara>
<warning>
<simpara>
<emphasis>OBSOLETO</emphasis> a partir de PHP 7.3.0 y
<emphasis>ELIMINADO</emphasis> a partir de PHP 8.0.0.
Esto se debe a que siempre está implícito por el
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>
Requiere que la <acronym>URL</acronym> contenga una parte de host.
</simpara>
<warning>
<simpara>
<emphasis>OBSOLETO</emphasis> a partir de PHP 7.3.0 y
<emphasis>ELIMINADO</emphasis> a partir de PHP 8.0.0.
Esto se debe a que siempre está implícito por el
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>
Requiere que la <acronym>URL</acronym> contenga una parte de ruta.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-query-required">
<term>
<constant>FILTER_FLAG_QUERY_REQUIRED</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requiere que la <acronym>URL</acronym> contenga una parte de consulta.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
Una <acronym>URL</acronym> válida puede no especificar el
protocolo <acronym>HTTP</acronym> (<literal>http://</literal>).
Por lo tanto, puede ser necesaria una validación adicional para determinar si la
<acronym>URL</acronym> usa un protocolo esperado,
por ejemplo, <literal>ssh://</literal> o <literal>mailto:</literal>.
</simpara>
</warning>
<warning>
<simpara>
Este filtro solo funciona con <acronym>URL</acronym>s <acronym>ASCII</acronym>.
Esto significa que los Nombres de Dominio Internacionalizados (IDN) siempre serán rechazados.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-domain">
<term>
<constant>FILTER_VALIDATE_DOMAIN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Valida si el nombre de dominio es válido según
<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>,
y
<link xlink:href="&url.rfc;2181">RFC 2181</link>.
</simpara>
<variablelist xml:id="filter.constants.validation.domain.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.domain.flags">
<title>Flags opcionales</title>
<varlistentry xml:id="constant.filter-flag-hostname">
<term>
<constant>FILTER_FLAG_HOSTNAME</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Requiere que los nombres de host comiencen con un carácter alfanumérico y contengan
solo caracteres alfanuméricos o guiones.
</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>
Valida si el valor es una dirección de correo electrónico "válida".
</simpara>
<simpara>
La validación se realiza contra la sintaxis <literal>addr-spec</literal>
en
<link xlink:href="&url.rfc;822">RFC 822</link>.
Sin embargo, los comentarios, el plegado de espacios en blanco y los nombres de dominio sin puntos
no están soportados, y por lo tanto serán rechazados.
</simpara>
<variablelist xml:id="filter.constants.validation.email.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.email.flags">
<title>Flags opcionales</title>
<varlistentry xml:id="constant.filter-flag-email-unicode">
<term>
<constant>FILTER_FLAG_EMAIL_UNICODE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Acepta caracteres Unicode en la parte local.
Disponible a partir de PHP 7.1.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
La validación de correo electrónico es compleja y la única forma verdadera de confirmar que un correo electrónico
es válido y existe es enviar un correo electrónico a la dirección.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-validate-ip">
<term>
<constant>FILTER_VALIDATE_IP</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Valida el valor como dirección IP.
</para>
<variablelist xml:id="filter.constants.validation.ip.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.validation.ip.flags">
<title>Flags opcionales</title>
<varlistentry xml:id="constant.filter-flag-ipv4">
<term>
<constant>FILTER_FLAG_IPV4</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permite direcciones IPv4.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-ipv6">
<term>
<constant>FILTER_FLAG_IPV6</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Permite direcciones 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>
Deniega direcciones reservadas.
</simpara>
<simpara>
Estos son los rangos que están marcados como
<literal>Reserved-By-Protocol</literal> en
<link xlink:href="&url.rfc;6890">RFC 6890</link>.
</simpara>
<para>
Que para IPv4 corresponden a los siguientes rangos:
<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>
Y para IPv6 corresponden a los siguientes rangos:
<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>
Deniega direcciones privadas.
</simpara>
<para>
Estas son direcciones IPv4 que están en los siguientes rangos:
<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>
Estas son direcciones IPv6 que comienzan con
<literal>FD</literal> o <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>
Solo permite direcciones globales.
Estas se pueden encontrar en
<link xlink:href="&url.rfc;6890">RFC 6890</link>
donde el atributo <literal>Global</literal> es <literal>True</literal>.
Disponible a partir de 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 si el valor es una dirección MAC.
</simpara>
<variablelist xml:id="filter.constants.validation.mac.options">
<title>Opciones disponibles</title>
<varlistentry>
<term><literal>default</literal></term>
<listitem>
<simpara>
Valor a devolver en caso de que el filtro falle.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
<variablelist xml:id="filter.constants.sanitization">
<title>Filtros de saneamiento</title>
<varlistentry xml:id="constant.filter-unsafe-raw">
<term>
<constant>FILTER_UNSAFE_RAW</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtro no hace nada.
</simpara>
<simpara>
Sin embargo, puede eliminar o codificar caracteres especiales si se usa junto con
los flags de saneamiento de filtro <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
y <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</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 elimina etiquetas y codifica en HTML comillas dobles y simples.
</simpara>
<simpara>
Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con
los flags de saneamiento de filtro <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
y <constant>FILTER_FLAG_ENCODE_<replaceable>*</replaceable></constant>.
</simpara>
<simpara>
El comportamiento de codificación de comillas puede desactivarse usando el
flag de filtro <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</simpara>
<warning>
<simpara>
<emphasis>Obsoleto</emphasis> a partir de PHP 8.1.0,
use <function>htmlspecialchars</function> en su lugar.
</simpara>
</warning>
<warning>
<simpara>
La forma en que este filtro elimina etiquetas no es 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>Obsoleto</emphasis> a partir de PHP 8.1.0,
use <function>htmlspecialchars</function> en su 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 filtro codifica una cadena en URL.
</simpara>
<simpara>
Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con
los flags de saneamiento de filtro <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>
y <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 filtro codifica en 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>
y caracteres con un valor ASCII menor que 32.
A diferencia del filtro <constant>FILTER_SANITIZE_FULL_SPECIAL_CHARS</constant>, el
filtro <constant>FILTER_SANITIZE_SPECIAL_CHARS</constant> ignora el
flag <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</para>
<simpara>
Opcionalmente puede eliminar caracteres especificados si se usa junto con
los flags de saneamiento de filtro <constant>FILTER_FLAG_STRIP_<replaceable>*</replaceable></constant>,
y puede codificar caracteres con valor ASCII
mayor 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 es equivalente a llamar a <function>htmlspecialchars</function>
con <constant>ENT_QUOTES</constant> configurado.
</simpara>
<simpara>
El comportamiento de codificación de comillas puede desactivarse usando el
flag de filtro <constant>FILTER_FLAG_NO_ENCODE_QUOTES</constant>.
</simpara>
<warning>
<simpara>
Al igual que <function>htmlspecialchars</function>, este filtro es consciente de la
configuración INI <link linkend="ini.default-charset">default_charset</link>.
Si se detecta una secuencia de bytes que forma un carácter no válido
en el juego de caracteres actual, entonces toda la cadena es rechazada
resultando en que se devuelva una cadena vacía.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-sanitize-email">
<term>
<constant>FILTER_SANITIZE_EMAIL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Sanea la cadena eliminando todos los caracteres excepto
letras latinas (<literal>[a-zA-Z]</literal>),
dígitos (<literal>[0-9]</literal>),
y los caracteres especiales
<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>
Sanea la cadena eliminando todos los caracteres excepto
letras latinas (<literal>[a-zA-Z]</literal>),
dígitos (<literal>[0-9]</literal>),
y los caracteres especiales
<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>
Sanea la cadena eliminando todos los caracteres excepto dígitos
(<literal>[0-9]</literal>), signo más (<literal>+</literal>),
y signo menos (<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>
Sanea la cadena eliminando todos los caracteres excepto dígitos
(<literal>[0-9]</literal>), signo más (<literal>+</literal>),
y signo menos (<literal>-</literal>).
</simpara>
<variablelist xml:id="filter.constants.sanitization.float.flags">
<title>Flags opcionales</title>
<varlistentry xml:id="constant.filter-flag-allow-fraction">
<term>
<constant>FILTER_FLAG_ALLOW_FRACTION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Acepta el carácter punto (<literal>.</literal>),
que normalmente representa el separador entre las partes entera y
fraccionaria.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-thousand">
<term>
<constant>FILTER_FLAG_ALLOW_THOUSAND</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Acepta el carácter coma (<literal>,</literal>),
que normalmente representa el separador de miles.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.filter-flag-allow-scientific">
<term>
<constant>FILTER_FLAG_ALLOW_SCIENTIFIC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Acepta números en notación científica permitiendo los
caracteres <literal>e</literal> y <literal>E</literal>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<warning>
<simpara>
Si no se usa el flag <constant>FILTER_FLAG_ALLOW_FRACTION</constant>,
entonces el separador decimal es eliminado, alterando el valor recibido.
</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> a la entrada.
Disponible a partir de 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>OBSOLETO</emphasis> a partir de PHP 7.3.0 y
<emphasis>ELIMINADO</emphasis> a partir de PHP 8.0.0.
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Filtro definido por el usuario</title>
<varlistentry xml:id="constant.filter-callback">
<term>
<constant>FILTER_CALLBACK</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Este filtro delega el filtrado a una función definida por el usuario.
El <type>callable</type> se pasa a través del
parámetro <parameter>options</parameter> como el valor asociado a
la clave <literal>'options'</literal>.
</simpara>
<para>
La retrollamada debe tener la siguiente firma:
<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>
El valor que está siendo filtrado.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<note>
<simpara>
El valor devuelto por la retrollamada será el valor devuelto por
la función de filtro invocada.
</simpara>
</note>
<example>
<title>
Ejemplo de uso de <constant>FILTER_CALLBACK</constant> para validar
un nombre de inicio de sesión
</title>
<programlisting role="php">
<![CDATA[
<?php
function validate_login(string $value): ?string
{
if (strlen($value) >= 5 && ctype_alnum($value)) {
return $value;
}
return null;
}
$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(10) "val1dL0gin"
NULL
]]>
</screen>
</example>
<warning>
<simpara>
Este filtro no puede usarse con ningún otro flag de filtro, por ejemplo,
<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
-->