Filtros de validación

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.

FILTER_VALIDATE_BOOL (int)

Devuelve true para "1", 1 incluyendo notaciones binarias, octales y hexadecimales, 1.0 incluyendo notación científica, "true", true, "on", y "yes".

Devuelve false para "0", 0 incluyendo notaciones binarias, octales y hexadecimales, 0.0 incluyendo notación científica, "false", false, "off", "no", y "".

Los valores de string se comparan sin distinguir entre mayúsculas y minúsculas. 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 la URL es válida 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 para la mayoría de los esquemas.

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.

Advertencia

Este filtro es muy permisivo. Para cualquier esquema distinto de http:// o https://, el contenido del host se acepta sin ninguna validación, aunque la presencia de un host sigue siendo obligatoria, salvo que la URL tenga un esquema mailto:, news: o file:. Los esquemas no se validan por sí mismos y pueden aceptarse aunque no correspondan a un esquema de URL conocido, o tengan algún otro significado en PHP (como phar://). El filtro también acepta direcciones de » loopback que corresponden al host actual.

<?php

var_dump(filter_var('javascript://x%0aalert(1)', FILTER_VALIDATE_URL));
var_dump(filter_var('javascript://?demo', FILTER_VALIDATE_URL));
var_dump(filter_var('news:?demo', FILTER_VALIDATE_URL));
var_dump(filter_var('phar://demo', FILTER_VALIDATE_URL));
var_dump(filter_var('123://demo', FILTER_VALIDATE_URL));
var_dump(filter_var('-://demo', FILTER_VALIDATE_URL));
var_dump(filter_var('http://127.0.0.1', FILTER_VALIDATE_URL));
var_dump(filter_var('gopher://127.0.0.1', FILTER_VALIDATE_URL));
?>

El ejemplo anterior mostrará:

string(25) "javascript://x%0aalert(1)"
bool(false)
string(10) "news:?demo"
string(11) "phar://demo"
string(10) "123://demo"
string(8) "-://demo"
string(16) "http://127.0.0.1"
string(18) "gopher://127.0.0.1"
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.

Advertencia

Este filtro es muy permisivo. Como se especifica en la » RFC 2181, un nombre de dominio válido es una cadena con una longitud máxima de 253 caracteres (254 si se incluye un separador . final) y en la que cada etiqueta (separada por un .) tiene como máximo 63 caracteres. A menos que se use FILTER_FLAG_HOSTNAME para garantizar que el dominio sea también un nombre de host válido, el filtro acepta espacios en blanco, metacaracteres, bytes de control e incluso bytes NUL.

<?php

var_dump(filter_var("!@#$%^&*(){}[]/?=+\|`~\"'<>,", FILTER_VALIDATE_DOMAIN));
var_dump(filter_var("null byte: >\0<", FILTER_VALIDATE_DOMAIN));
var_dump(filter_var("space:> <, tab:>\t<, newline: >\n<, carriage return>\r<", FILTER_VALIDATE_DOMAIN));
?>

El ejemplo anterior mostrará:

string(27) "!@#$%^&*(){}[]/?=+\|`~"'<>,"
string(14) "null byte: ><"
string(52) "space:> <, tab:>	<, newline: >
<, carriage return>
<"
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.

+add a note

User Contributed Notes

There are no user contributed notes for this page.