PHP 8.5.0 Beta 2 available for testing

Constantes predefinidas

Estas constantes son definidas por esta extensión, y solo están disponibles si esta extensión ha sido compilada con PHP, o bien cargada en tiempo de ejecución.

Constantes de entrada

Estas constantes son utilizadas por filter_input() y filter_input_array().

INPUT_POST (int)
Variables POST.
INPUT_GET (int)
Variables GET.
Variables COOKIE.
INPUT_ENV (int)
Variables ENV.
INPUT_SERVER (int)
Variables SERVER.
INPUT_SESSION (int)
Variables SESSION. (Eliminado a partir de PHP 8.0.0; no estaba implementado previamente)
INPUT_REQUEST (int)
Variables REQUEST. (Eliminado a partir de PHP 8.0.0; no estaba implementado previamente)
Flags genéricos de filtro
FILTER_FLAG_NONE (int)
Sin flags.
FILTER_REQUIRE_SCALAR (int)
Flag utilizado para requerir que la entrada del filtro sea un escalar.
FILTER_REQUIRE_ARRAY (int)
Flag utilizado para requerir que la entrada del filtro sea un array.
FILTER_FORCE_ARRAY (int)
Este flag envuelve las entradas escalares en un array de un elemento para filtros que operan sobre arrays.
FILTER_NULL_ON_FAILURE (int)
Usar null en lugar de false en caso de fallo. Utilizable con cualquier filtro de validación FILTER_VALIDATE_*.
Flags de filtro de saneamiento
FILTER_FLAG_STRIP_LOW (int)
Elimina caracteres con valor ASCII menor que 32.
FILTER_FLAG_STRIP_HIGH (int)
Elimina caracteres con valor ASCII mayor que 127.
FILTER_FLAG_STRIP_BACKTICK (int)
Elimina caracteres de comilla invertida (`).
FILTER_FLAG_ENCODE_LOW (int)
Codifica caracteres con valor ASCII menor que 32.
FILTER_FLAG_ENCODE_HIGH (int)
Codifica caracteres con valor ASCII mayor que 127.
FILTER_FLAG_ENCODE_AMP (int)
Codifica &.
FILTER_FLAG_NO_ENCODE_QUOTES (int)
Las comillas simples y dobles (' y ") no serán codificadas.
FILTER_FLAG_EMPTY_STRING_NULL (int)
Si el saneamiento de un string resulta en un string vacío, convierte el valor a null
Filtros de validación
FILTER_VALIDATE_BOOL (int)
Devuelve true para "1", "true", "on", y "yes". Devuelve false para "0", "false", "off", "no", y "". El valor de retorno para valores no booleanos depende de FILTER_NULL_ON_FAILURE. Si está configurado, se devuelve null, de lo contrario se devuelve false.
Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
Disponible a partir de PHP 8.0.0.
FILTER_VALIDATE_BOOLEAN (int)
Alias de FILTER_VALIDATE_BOOL. El alias estaba disponible antes de la introducción de su nombre canónico en PHP 8.0.0.
FILTER_VALIDATE_INT (int)
Valida si el valor es un entero, en caso de éxito se convierte al tipo int.

Nota: Los valores string son recortados usando trim() antes de la validación.

Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
min_range
El valor solo es válido si es mayor o igual que el valor proporcionado.
max_range
El valor solo es válido si es menor o igual que el valor proporcionado.
Flags opcionales
FILTER_FLAG_ALLOW_OCTAL (int)
Permite enteros en notación octal (0[0-7]+).
FILTER_FLAG_ALLOW_HEX (int)
Permite enteros en notación hexadecimal (0x[0-9a-fA-F]+).
FILTER_VALIDATE_FLOAT (int)
Valida si el valor es un float, en caso de éxito se convierte al tipo float.

Nota: Los valores string son recortados usando trim() antes de la validación.

Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
decimal
min_range
El valor solo es válido si es mayor o igual que el valor proporcionado. Disponible a partir de PHP 7.4.0.
max_range
El valor solo es válido si es menor o igual que el valor proporcionado. Disponible a partir de PHP 7.4.0.
Flags opcionales
FILTER_FLAG_ALLOW_THOUSAND (int)
Acepta comas (,), que normalmente representan el separador de miles.
FILTER_VALIDATE_REGEXP (int)
Valida el valor contra la expresión regular proporcionada por la opción regexp.
Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
regexp
Expresión regular compatible con Perl.
FILTER_VALIDATE_URL (int)
Valida si el nombre de URL es válido según » RFC 2396.
Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
Flags opcionales
FILTER_FLAG_SCHEME_REQUIRED (int)
Requiere que la URL contenga una parte de esquema.
Advertencia

OBSOLETO a partir de PHP 7.3.0 y ELIMINADO a partir de PHP 8.0.0. Esto se debe a que siempre está implícito por el filtro FILTER_VALIDATE_URL.

FILTER_FLAG_HOST_REQUIRED (int)
Requiere que la URL contenga una parte de host.
Advertencia

OBSOLETO a partir de PHP 7.3.0 y ELIMINADO a partir de PHP 8.0.0. Esto se debe a que siempre está implícito por el filtro FILTER_VALIDATE_URL.

FILTER_FLAG_PATH_REQUIRED (int)
Requiere que la URL contenga una parte de ruta.
FILTER_FLAG_QUERY_REQUIRED (int)
Requiere que la URL contenga una parte de consulta.
Advertencia

Una URL válida puede no especificar el protocolo HTTP (http://). Por lo tanto, puede ser necesaria una validación adicional para determinar si la URL usa un protocolo esperado, por ejemplo, ssh:// o mailto:.

Advertencia

Este filtro solo funciona con URLs ASCII. Esto significa que los Nombres de Dominio Internacionalizados (IDN) siempre serán rechazados.

FILTER_VALIDATE_DOMAIN (int)
Valida si el nombre de dominio es válido según » RFC 952, » RFC 1034, » RFC 1035, » RFC 1123, » RFC 2732, y » RFC 2181.
Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
Flags opcionales
FILTER_FLAG_HOSTNAME (int)
Requiere que los nombres de host comiencen con un carácter alfanumérico y contengan solo caracteres alfanuméricos o guiones.
FILTER_VALIDATE_EMAIL (int)
Valida si el valor es una dirección de correo electrónico "válida". La validación se realiza contra la sintaxis addr-spec en » RFC 822. 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.
Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
Flags opcionales
FILTER_FLAG_EMAIL_UNICODE (int)
Acepta caracteres Unicode en la parte local. Disponible a partir de PHP 7.1.0.
Advertencia

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.

FILTER_VALIDATE_IP (int)

Valida el valor como dirección IP.

Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
Flags opcionales
FILTER_FLAG_IPV4 (int)
Permite direcciones IPv4.
FILTER_FLAG_IPV6 (int)
Permite direcciones IPv6.
FILTER_FLAG_NO_RES_RANGE (int)
Deniega direcciones reservadas. Estos son los rangos que están marcados como Reserved-By-Protocol en » RFC 6890.

Que para IPv4 corresponden a los siguientes rangos: 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8, 240.0.0.0/4.

Y para IPv6 corresponden a los siguientes rangos: ::1/128, ::/128, ::FFFF:0:0/96, FE80::/10.

FILTER_FLAG_NO_PRIV_RANGE (int)
Deniega direcciones privadas.

Estas son direcciones IPv4 que están en los siguientes rangos: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.

Estas son direcciones IPv6 que comienzan con FD o FC.
FILTER_FLAG_GLOBAL_RANGE (int)
Solo permite direcciones globales. Estas se pueden encontrar en » RFC 6890 donde el atributo Global es True. Disponible a partir de PHP 8.2.0.
FILTER_VALIDATE_MAC (int)
Valida si el valor es una dirección MAC.
Opciones disponibles
default
Valor a devolver en caso de que el filtro falle.
Filtros de saneamiento
FILTER_UNSAFE_RAW (int)
Este filtro no hace nada. Sin embargo, puede eliminar o codificar caracteres especiales si se usa junto con los flags de saneamiento de filtro FILTER_FLAG_STRIP_* y FILTER_FLAG_ENCODE_*.
FILTER_DEFAULT (int)
Alias de FILTER_UNSAFE_RAW.
FILTER_SANITIZE_STRING (int)
Este filtro elimina etiquetas y codifica en HTML comillas dobles y simples. Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con los flags de saneamiento de filtro FILTER_FLAG_STRIP_* y FILTER_FLAG_ENCODE_*. El comportamiento de codificación de comillas puede desactivarse usando el flag de filtro FILTER_FLAG_NO_ENCODE_QUOTES.
Advertencia

Obsoleto a partir de PHP 8.1.0, use htmlspecialchars() en su lugar.

Advertencia

La forma en que este filtro elimina etiquetas no es equivalente a strip_tags().

FILTER_SANITIZE_STRIPPED (int)
Alias de FILTER_SANITIZE_STRING.
Advertencia

Obsoleto a partir de PHP 8.1.0, use htmlspecialchars() en su lugar.

FILTER_SANITIZE_ENCODED (int)
Este filtro codifica una cadena en URL. Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con los flags de saneamiento de filtro FILTER_FLAG_STRIP_* y FILTER_FLAG_ENCODE_*.
FILTER_SANITIZE_SPECIAL_CHARS (int)

Este filtro codifica en HTML ', ", <, >, & y caracteres con un valor ASCII menor que 32.

Opcionalmente puede eliminar caracteres especificados si se usa junto con los flags de saneamiento de filtro FILTER_FLAG_STRIP_*, y puede codificar caracteres con valor ASCII mayor que 127 usando FILTER_FLAG_ENCODE_HIGH.
FILTER_SANITIZE_FULL_SPECIAL_CHARS (int)
Este filtro es equivalente a llamar a htmlspecialchars() con ENT_QUOTES configurado. El comportamiento de codificación de comillas puede desactivarse usando el flag de filtro FILTER_FLAG_NO_ENCODE_QUOTES.
Advertencia

Al igual que htmlspecialchars(), este filtro es consciente de la configuración INI default_charset. 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.

FILTER_SANITIZE_EMAIL (int)
Sanea la cadena eliminando todos los caracteres excepto letras latinas ([a-zA-Z]), dígitos ([0-9]), y los caracteres especiales !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_URL (int)
Sanea la cadena eliminando todos los caracteres excepto letras latinas ([a-zA-Z]), dígitos ([0-9]), y los caracteres especiales $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_SANITIZE_NUMBER_INT (int)
Sanea la cadena eliminando todos los caracteres excepto dígitos ([0-9]), signo más (+), y signo menos (-).
FILTER_SANITIZE_NUMBER_FLOAT (int)
Sanea la cadena eliminando todos los caracteres excepto dígitos ([0-9]), signo más (+), y signo menos (-).
Flags opcionales
FILTER_FLAG_ALLOW_FRACTION (int)
Acepta el carácter punto (.), que normalmente representa el separador entre las partes entera y fraccionaria.
FILTER_FLAG_ALLOW_THOUSAND (int)
Acepta el carácter coma (,), que normalmente representa el separador de miles.
FILTER_FLAG_ALLOW_SCIENTIFIC (int)
Acepta números en notación científica permitiendo los caracteres e y E.
Advertencia

Si no se usa el flag FILTER_FLAG_ALLOW_FRACTION, entonces el separador decimal es eliminado, alterando el valor recibido.

<?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));
?>

El ejemplo anterior mostrará :

string(4) "1234"
string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES (int)
Aplica addslashes() a la entrada. Disponible a partir de PHP 7.3.0.
FILTER_SANITIZE_MAGIC_QUOTES (int)
Alias de FILTER_SANITIZE_ADD_SLASHES.
Advertencia

OBSOLETO a partir de PHP 7.3.0 y ELIMINADO a partir de PHP 8.0.0.

Filtro definido por el usuario
FILTER_CALLBACK (int)
Este filtro delega el filtrado a una función definida por el usuario. El callable se pasa a través del parámetro options como el valor asociado a la clave 'options'.

La retrollamada debe tener la siguiente firma:

callback(string $value): mixed
value
El valor que está siendo filtrado.

Nota: El valor devuelto por la retrollamada será el valor devuelto por la función de filtro invocada.

Ejemplo #1 Ejemplo de uso de FILTER_CALLBACK para validar un nombre de inicio de sesión

<?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);
?>

El ejemplo anterior mostrará :

string(10) "val1dL0gin"
NULL
Advertencia

Este filtro no puede usarse con ningún otro flag de filtro, por ejemplo, FILTER_NULL_ON_FAILURE.

add a note

User Contributed Notes 1 note

up
7
shaman_master at list dot ru
5 years ago
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!
To Top