Saltar al contenido

filter_input_array()

Introducción

PHP ofrece una variedad de funciones integradas para procesar la entrada del usuario, y una de estas funciones es filter_input_array(). Esta función se utiliza para filtrar y sanitizar un array completo de datos de entrada. En este artículo, te proporcionaremos una guía detallada sobre cómo usar filter_input_array() en PHP, su sintaxis y sus beneficios.

Sintaxis

La sintaxis de filter_input_array() es la siguiente:

The PHP syntax of filter_input_array()

php
filter_input_array ( int $type , mixed $definition [, bool $add_empty = true ] ) : mixed

La función acepta tres parámetros: el tipo de entrada (como INPUT_GET o INPUT_POST), la definición de los filtros que se aplicarán a los datos de entrada y un indicador booleano opcional para indicar si los valores de entrada vacíos deben agregarse al array devuelto. Cuando $add_empty es true (el valor predeterminado), las claves con valores vacíos se incluyen en el resultado. Establece este parámetro en false para excluirlos. Por ejemplo, filter_input_array(INPUT_GET, $filters, false) devuelve solo las claves con valores no vacíos. La función devuelve los datos de entrada filtrados en caso de éxito, o false en caso de fallo.

Uso

La función filter_input_array() se utiliza para filtrar y sanitizar un array completo de datos de entrada, como los datos enviados a través de un formulario. Por ejemplo, el siguiente código utiliza filter_input_array() para sanitizar la entrada del usuario desde un formulario:

Example of PHP filter_input_array()

php
<?php

$filters = [
    'name' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
    'age' => FILTER_VALIDATE_INT,
    'email' => FILTER_VALIDATE_EMAIL,
];

$data = filter_input_array(INPUT_POST, $filters);

if ($data === false) {
    // Handle error: input data could not be retrieved
    exit('Input retrieval failed.');
}

// Access or iterate over the sanitized data
foreach ($data as $key => $value) {
    echo $key . ': ' . $value . PHP_EOL;
}

En este ejemplo, el array $filters se utiliza para definir los filtros que se aplicarán a los datos de entrada. Luego, la función filter_input_array() se usa junto con la constante INPUT_POST para recuperar los datos de entrada y aplicar los filtros. Los datos sanitizados resultantes se almacenan en el array $data.

Nota sobre la compatibilidad con versiones de PHP: FILTER_SANITIZE_STRING fue marcada como obsoleta en PHP 8.1 y eliminada en PHP 8.2. Utiliza siempre FILTER_SANITIZE_FULL_SPECIAL_CHARS para la sanitización de cadenas en versiones modernas de PHP.

Beneficios

El uso de filter_input_array() puede ayudar a mejorar la seguridad y confiabilidad de tu aplicación PHP al filtrar y sanitizar un array completo de datos de entrada de una sola vez. Al validar los datos de entrada antes de procesarlos, puedes asegurarte de que tu aplicación solo acepte datos válidos y evitar posibles brechas de seguridad.

Además, el uso de funciones de filtrado puede ayudar a mejorar la calidad general de tu código al hacerlo más legible y mantenible. Al separar la lógica de validación de la lógica de procesamiento, puedes hacer que tu código sea más modular y más fácil de depurar.

Conclusión

En conclusión, la función filter_input_array() es una herramienta útil para filtrar y sanitizar un array completo de datos de entrada en aplicaciones PHP. Al utilizarla junto con otras funciones de filtrado, puedes mejorar la seguridad y calidad de tu código, al tiempo que lo haces más fácil de leer y mantener.

Práctica

En PHP, ¿cuál es el propósito de la función filter_input_array según la información proporcionada en el sitio w3docs?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.