Chose Language:
Author: Admin/Publisher |finished | checked

Filtros en PHP

Los filtros en PHP cumplen una función importante en PHP, los principales de estos nos ayudan a validar y sanitizar(sanear), valores introducidos por usuarios vía formularios u de otra forma.

contenido

Tipos de filtros

En si hay 4 tipos de filtros:

  • Validate filters (filtros de validación)
  • Sanitize filters (filtros para sanitizar(sanear))
  • Other filters (En realidad aquí solo hay un filtro por ahora y es un filtro de callback)
  • Filter flags

Como podrá imaginar, los filtros que nos interesan son los 2 primeros tipos de filtros. Todos los filtros y flags son constantes.

Filtros de validación

https://blastcoding.com/filtros-en-php/#filtros-de-validacion

Muchos filtros son validados contra RFCs las cuales son especificaciones de como debe ser cierta cosa en internet, por ejemplo, el RFC 1034 es el de DOMAIN NAMES – CONCEPTS AND FACILITIES(especifica como debe ser un dominio)

FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_BOOL

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_BOOLEAN

Nombre: "boolean"

Opciones: default

Flags : FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_BOOL descripción

Retorna true para los siguientes valores "1", "true", "on" y "yes". De otra manera retornara false.

Si FILTER_NULL_ON_FAILURE está seteado, false si es "0", "false", "off", "no", y "", devolvera null para todo valor no booleano.

Los valores string son procesados con trim() antes de la comparación.


FILTER_VALIDATE_DOMAIN

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_DOMAIN

Nombre: "validate_domain"

Opciones: default

Flags: FILTER_FLAG_HOSTNAME, FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_DOMAIN descripción Valida si el largo de el dominio es valido Valida el dominio en comparacion contra RFC 1034, RFC 1035, RFC 952, RFC 1123, RFC 2732, RFC 2181, and RFC 1123. La flag opcional FILTER_FLAG_HOSTNAME agrega la validacion de hostnames (estos deben empezar con un caracter aplhanumerico y contener solo caracteres alphanumericos y guiones)

FILTER_VALIDATE_EMAIL

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_EMAIL

Nombre: "validate_email"

Opciones: default

Flags: FILTER_FLAG_EMAIL_UNICODE, FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_EMAIL descripcion Valida si es una direccion de email valida. In general, this validates e-mail addresses against the addr-specsyntax in » RFC 822, with the exceptions that comments and whitespace folding and dotless domain names are not supported.

FILTER_VALIDATE_FLOAT

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_FLOAT

Nombre: "float"

Opciones: default, decimal, min_range, max_range

Flags: FILTER_FLAG_ALLOW_THOUSAND, FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_FLOAT description Válida un valor como float, opcionalmente del rango espacificado y convertido a float si tuvo exito. Los valores string son limpiados de valores en blancos con trim() antes de la comparacion

FILTER_VALIDATE_INT

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_INT

Nombre: "int"

Opciones: default, min_range, max_range

Flags: FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX, FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_INT description Valida un valor como un entero, opcionalmente para el rango especificado, y convertido a entero si tiene exito. Los valores string son pasado por la funcion trim() antes de la comparación.

FILTER_VALIDATE_IP

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_IP

Nombre: "validate_ip"

Opciones: default

Flags: FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE, FILTER_FLAG_GLOBAL_RANGE, FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_IP description Valida el valor como una IP address(chequea si es una IP adress valida), opcionalmente solo IPv4 o IPv6 o no privatad o rangos reservados.

FILTER_VALIDATE_MAC

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_MAC

Nombres: "validate_mac_address"

Opciones: default

Flags: FILTER_NULL_ON_FAILURE

Descripción : Válida si los valores son MAC address.


FILTER_VALIDATE_REGEXP

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_REGEXP

Nombres: "validate_regexp"

Opciones: default, regexp

Flags: FILTER_NULL_ON_FAILURE

Descripción: válida el valor contra un regexp, (Perl-compatible regular expression).


FILTER_VALIDATE_URL

https://blastcoding.com/filtros-en-php/#FILTER_VALIDATE_URL

Nombre: "validate_url"

Opciones: default

Flags: FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED, FILTER_NULL_ON_FAILURE

FILTER_VALIDATE_URL descripción Validates value as URL (according to » http://www.faqs.org/rfcs/rfc2396), optionally with required components. Beware a valid URL may not specify the HTTP protocol http:// so further validation may be required to determine the URL uses an expected protocol, e.g. ssh:// or mailto:. Note that the function will only find ASCII URLs to be valid; internationalized domain names (containing non-ASCII characters) will fail.

Filtros para sanitizar

https://blastcoding.com/filtros-en-php/#filtros-para-sanitizar

FILTER_SANITIZE_EMAIL

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_EMAIL

Nombre: "email"

Flags: no flags

Descripción: Remueve todos los caracteres excepto letras, numeros y !#$%&’*+-=?^_`{|}~@.[].


FILTER_SANITIZE_ENCODED

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_ENCODED

Nombre: "encoded"

Flags: FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH

Descripción: URL-encode string, optionally strip or encode special characters.


FILTER_SANITIZE_MAGIC_QUOTES queda en deshuso en PHP 7.3.0 y removido PHP 8

FILTER_SANITIZE_MAGIC_QUOTES

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_MAGIC_QUOTES

Nombre: "magic_quotes"

Flags: no flags

Descripción: Aplica al valor dado addslashes().( use FILTER_SANITIZE_ADD_SLASHES instead.)


Disponible desde PHP 7.3.0

FILTER_SANITIZE_ADD_SLASHES

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_ADD_SLASHES

Nombre: "add_slashes"

Flags: no flags

Descripción: Aplica addslashes().


FILTER_SANITIZE_NUMBER_FLOAT

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_NUMBER_FLOAT

Nombre: "number_float"

Flags: FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC

Descripción: Remueve todos los caracteres excepto numeros,+,- y opcionalmente .,eE.


FILTER_SANITIZE_NUMBER_INT

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_NUMBER_INT

Nombre: "number_int"

Flags: no flag

Descripción: Remueve todos los caracteres excepto digitos(numeros), + y –


FILTER_SANITIZE_SPECIAL_CHARS

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_SPECIAL_CHARS

Nombre: "special_chars"

Flags: FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH

Descripción: codifica los símbolos HTML '"<>& y caracteres con valores ASCII menores a 32, opcionalmente elimina o codifica otros caracteres especiales.


FILTER_SANITIZE_FULL_SPECIAL_CHARS

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_FULL_SPECIAL_CHARS

Nombre: "full_special_chars"

Flags: FILTER_FLAG_NO_ENCODE_QUOTES

FILTER_SANITIZE_FULL_SPECIAL_CHARS description Es equivalente a llamar a htmlspecialchars() utilizando ENT_QUOTES.La codificacion de las comillas puede ser deshabilitada utilizando la flag FILTER_FLAG_NO_ENCODE_QUOTES. (Extra)Like htmlspecialchars(), this filter is aware of the default_charset and if a sequence of bytes is detected that makes up an invalid character in the current character set then the entire string is rejected resulting in a 0-length string. When using this filter as a default filter, see the warning below about setting the default flags to 0.

En des-uso desde PHP 8.1.0

FILTER_SANITIZE_STRING

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_STRING

Nombre: "string"

Flags: FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP

FILTER_SANITIZE_STRING description Elimina las etiquetas y codifica las comillas dobles y simples a ASCII, opcionalmente elimina o codifica caracteres especiales. la codificacion de comillas puede ser deshabilitada con FILTER_FLAG_NO_ENCODE_QUOTES (Deprecated as of PHP 8.1.0, use htmlspecialchars() instead.)

Entro en des-uso a partir de PHP 8.1.0

FILTER_SANITIZE_STRIPPED

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_STRIPPED

Nombre: "stripped"

Flags: no flags.

Descripción: Alias del filtro «string» . ( use htmlspecialchars() instead.)

se recomienda el uso de htmlspecialchars() en vez del filtro

FILTER_SANITIZE_URL

https://blastcoding.com/filtros-en-php/#FILTER_SANITIZE_URL

Nombre: "url"

Flags: no flags

Descripción: Remueve todos los caracteres excepto letras, numeros y $-_.+!*'(),{}|\^~[]`<>#%»;/?:@&=.


FILTER_UNSAFE_RAW

https://blastcoding.com/filtros-en-php/#FILTER_UNSAFE_RAW

Nombre: "unsafe_raw"

Flags: FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP

Descripción: No realiza ninguna acción, opcionalmente elimina o codifica caracteres especiales, su alias es FILTER_DEFAULT

Funciones de Filtros( filter )

https://blastcoding.com/filtros-en-php/#funciones-de-filtros

Para aplicar ciertos filtros tenemos múltiples funciones, a esta las llamaremos funciones de filtro. Estas funciones son las siguientes:

  • filter_has_var,
  • filter_id,
  • filter_input_array,
  • filter_input,
  • filter_list,
  • filter_var_array,
  • filter_var

filter_has_var

https://blastcoding.com/filtros-en-php/#function-filter_has_var

Chequea si la variable de un tipo específico existe.

Description / Descripción
filter_has_var(int $input_type, string $var_name): bool

Parámetros

$input_type – es un valor entero(int) el cual es obtenido de una de las siguientes constantes:

  • INPUT_GET,
  • INPUT_POST,
  • INPUT_COOKIE,
  • INPUT_SERVER,
  • INPUT_ENV.

$var_name – nombre de la variable a ser chequeada

Retornos

Retorna true en caso de exito, false en caso de fallo.


filter_id

https://blastcoding.com/filtros-en-php/#function-filter_id

Retorna el ID de filtro, según el nombre de filtro dado

Description / Descripción
filter_id(string $name): int|false

Parameters

$name – Nombre de un filtro para poder obtener el ID

Returns

Retorna un entero en caso de éxito o false si no existe un filtro con dicho nombre.


filter_input_array

https://blastcoding.com/filtros-en-php/#function-filter_input_array

Obtiene las variables externas especificadas en $type y opcionalmente filtra estas

Description / Descripción
filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Parameters

$type– debe ser una de las siguientes constantes:

  • INPUT_GET,
  • INPUT_POST,
  • INPUT_COOKIE,
  • INPUT_SERVER
  • INPUT_ENV.

$options – you can pass an array or not in case of not it will do the FILTER_DEFAULT that is an alias of FILTER_UNSAFE_RAW so if you not pass an array this will do nothing.

$add_empty – el valor pasado en add_empty debe ser booleano, en caso de ser true se agregan las key con valor null si esta no está vacia

Returns

array – este contiene los valores de las variables que fueron pedias o solicitadas si es que tiene exito.

false – en caso de que el filtro falla

null – si el array de entrada no es rellenado

FILTER_NULL_ON_FAILURE change the behavior. It returns false if the variable is not set and null if the filter fails

filter_input

https://blastcoding.com/filtros-en-php/#function-filter_input

Obtiene una variable externa por su nombre, opcionalmente puede ser filtrada.

Description / Descripción
filter_input(
    int $type,
    string $var_name,
    int $filter = FILTER_DEFAULT,
    array|int $options = 0
): mixed

Parámetros

$type – debe ser una de las siguientes constantes:

  • INPUT_GET,
  • INPUT_POST,
  • INPUT_COOKIE,
  • INPUT_SERVER
  • INPUT_ENV.

$var_name – nombre de la variable a obtener.

$filter – el ID del filtro a ser aplicado, si fue omitido, el alias FILTER_DEFAULT sera usado (vea FILTER_UNSAFE_RAW)

$options – Array asociativo de opciones o dyuncion de flags bit a bit, si el filto acepta opciones, las flags pueden ser poveidas con el campo "flags"

Retornos

Valor de las variables requeridas sí tiene éxito.

false si el filtrado falla.

null si la variable con ese nombre no es seteada(establecida).

If the flag FILTER_NULL_ON_FAILURE is used, it returns false if the variable is not set and null if the filter fails.

filter_list

https://blastcoding.com/filtros-en-php/#function-filter_list

Retorna una lista de los filtros soportados.

Description / Descripción
filter_list(): array

Retornos

Array con los nombres de los filtros soportados

filter_var_array

https://blastcoding.com/filtros-en-php/#function-filter_var_array

Obtiene múltiples variables y opcionalmente las filtra

Description / Descripción
filter_var_array(array $array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Parámetros

$array – un array asociativo con las keys conteniendo los datos a filtrar.

ejemplo: array("key1" => "data1,"key2"=>"data2").

Recuerde que $_POST, $_GET y los demás son arrays asociativos y, por tanto, pueden ser utilizados

$options – un array definiendo los argumentos.

Una key valida es un string conteniedo un nombre de varaible y un valor valido el cual puede ser un filtro(filter type) o opcionalmente un array especificando el filtro, flags y opciones.

Este valor puede ser también un entero, el cual es especificado por una constante de filtro. Luego todos los valores de entrada eran filtrados por este filtro.

$add_empty – el valor pasado en add_empty debe ser booleano, en caso de ser true se agregan las key con valor null si esta no está vacia

Retornos

array – containing the values of the requested variables on success

false – si hay una falla.

An array value will be false if the filter fails, or null if the variable is not set.

filter_var

https://blastcoding.com/filtros-en-php/#function-filter_var

Filtra una variable con un filtro específico.

Description / Descripción
filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

Parámetros

$value – Valor a ser filtrado. Los valores escalares(numeros) serán convertidos a string antes de ser filtrados.

$filter – el ID del filtro a ser aplicada. Si es omitida, FILTER_DEFAULT será usado.

$options – Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in «flags» field of array. For the «callback» filter, callable type should be passed.

The callback must accept one argument, the value to be filtered, and return the value after filtering/sanitizing it.

Retornos

Retorna los datos filtrados, o false si el filtrado falla.

Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category