Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!
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.
Estas constantes son utilizadas por filter_input() y filter_input_array().
INPUT_POST
(int)
INPUT_GET
(int)
INPUT_ENV
(int)
INPUT_SERVER
(int)
INPUT_SESSION
(int)
INPUT_REQUEST
(int)
FILTER_FLAG_NONE
(int)
FILTER_REQUIRE_SCALAR
(int)
FILTER_REQUIRE_ARRAY
(int)
FILTER_FORCE_ARRAY
(int)
FILTER_NULL_ON_FAILURE
(int)
null
en lugar de false
en caso de fallo.
Utilizable con cualquier filtro de validación
FILTER_VALIDATE_*
.
FILTER_FLAG_STRIP_LOW
(int)
FILTER_FLAG_STRIP_HIGH
(int)
FILTER_FLAG_STRIP_BACKTICK
(int)
`
).
FILTER_FLAG_ENCODE_LOW
(int)
FILTER_FLAG_ENCODE_HIGH
(int)
FILTER_FLAG_ENCODE_AMP
(int)
&
.
FILTER_FLAG_NO_ENCODE_QUOTES
(int)
'
y "
)
no serán codificadas.
FILTER_FLAG_EMPTY_STRING_NULL
(int)
null
FILTER_VALIDATE_BOOL
(int)
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
.
default
FILTER_VALIDATE_BOOLEAN
(int)
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)
Nota: Los valores string son recortados usando trim() antes de la validación.
default
min_range
max_range
FILTER_FLAG_ALLOW_OCTAL
(int)
0[0-7]+
).
FILTER_FLAG_ALLOW_HEX
(int)
0x[0-9a-fA-F]+
).
FILTER_VALIDATE_FLOAT
(int)
Nota: Los valores string son recortados usando trim() antes de la validación.
default
decimal
min_range
max_range
FILTER_FLAG_ALLOW_THOUSAND
(int)
,
),
que normalmente representan el separador de miles.
FILTER_VALIDATE_REGEXP
(int)
regexp
.
default
regexp
FILTER_VALIDATE_URL
(int)
default
FILTER_FLAG_SCHEME_REQUIRED
(int)
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)
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)
FILTER_FLAG_QUERY_REQUIRED
(int)
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:
.
Este filtro solo funciona con URLs ASCII. Esto significa que los Nombres de Dominio Internacionalizados (IDN) siempre serán rechazados.
FILTER_VALIDATE_DOMAIN
(int)
default
FILTER_FLAG_HOSTNAME
(int)
FILTER_VALIDATE_EMAIL
(int)
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.
default
FILTER_FLAG_EMAIL_UNICODE
(int)
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.
default
FILTER_FLAG_IPV4
(int)
FILTER_FLAG_IPV6
(int)
FILTER_FLAG_NO_RES_RANGE
(int)
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)
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
.
FD
o FC
.
FILTER_FLAG_GLOBAL_RANGE
(int)
Global
es True
.
Disponible a partir de PHP 8.2.0.
FILTER_VALIDATE_MAC
(int)
default
FILTER_UNSAFE_RAW
(int)
FILTER_FLAG_STRIP_*
y FILTER_FLAG_ENCODE_*
.
FILTER_DEFAULT
(int)
FILTER_UNSAFE_RAW
.
FILTER_SANITIZE_STRING
(int)
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
.
Obsoleto a partir de PHP 8.1.0, use htmlspecialchars() en su lugar.
La forma en que este filtro elimina etiquetas no es equivalente a strip_tags().
FILTER_SANITIZE_STRIPPED
(int)
FILTER_SANITIZE_STRING
.
Obsoleto a partir de PHP 8.1.0, use htmlspecialchars() en su lugar.
FILTER_SANITIZE_ENCODED
(int)
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.
FILTER_FLAG_STRIP_*
,
y puede codificar caracteres con valor ASCII
mayor que 127 usando FILTER_FLAG_ENCODE_HIGH
.
FILTER_SANITIZE_FULL_SPECIAL_CHARS
(int)
ENT_QUOTES
configurado.
El comportamiento de codificación de comillas puede desactivarse usando el
flag de filtro FILTER_FLAG_NO_ENCODE_QUOTES
.
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)
[a-zA-Z]
),
dígitos ([0-9]
),
y los caracteres especiales
!#$%&'*+-=?^_`{|}~@.[]
.
FILTER_SANITIZE_URL
(int)
[a-zA-Z]
),
dígitos ([0-9]
),
y los caracteres especiales
$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=
.
FILTER_SANITIZE_NUMBER_INT
(int)
[0-9]
), signo más (+
),
y signo menos (-
).
FILTER_SANITIZE_NUMBER_FLOAT
(int)
[0-9]
), signo más (+
),
y signo menos (-
).
FILTER_FLAG_ALLOW_FRACTION
(int)
.
),
que normalmente representa el separador entre las partes entera y
fraccionaria.
FILTER_FLAG_ALLOW_THOUSAND
(int)
,
),
que normalmente representa el separador de miles.
FILTER_FLAG_ALLOW_SCIENTIFIC
(int)
e
y E
.
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)
FILTER_SANITIZE_MAGIC_QUOTES
(int)
FILTER_SANITIZE_ADD_SLASHES
.
OBSOLETO a partir de PHP 7.3.0 y ELIMINADO a partir de PHP 8.0.0.
FILTER_CALLBACK
(int)
options
como el valor asociado a
la clave 'options'
.
La retrollamada debe tener la siguiente firma:
value
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
Este filtro no puede usarse con ningún otro flag de filtro, por ejemplo,
FILTER_NULL_ON_FAILURE
.
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!