Filtros

Los filtros fueron añadidos a partir de la versión 5.2.0. Son una buena manera de validar y eliminar valores no válidos de datos de fuentes externas (datos de entrada), que provienen de formularios, servicios web, etc. Los filtros que vamos a utilizar se resumen en dos:

  • Filtros de validación.
  • Filtros de saneamiento.

Los filtros de validación sirven para comprobar. Un ejemplo claro: Si tenemos un campo en el que el usuario inserta su DNI, tenemos que COMPROBAR que el valor introducido en el campo cumpla con el formato del DNI (8 números seguidos de una letra: 15423672D).

Los filtros de saneamiento, sirven para corregir, por ejemplo, vamos a CORREGIR que un usuario escriba en el campo nombre solo letras. Si escribe números, estos serán borrados: Rubita19-->Rubita.

Una vez que hayamos recibido los datos, tenemos que filtrarlos. Para ello utilizaremos la función **filter_var()**. Esta es su definición:

mixed filter_var(mixed $variable [,int $filter = FILTER_DEFAULT [,mixed $options]])

Dicha función recibe tres parámetros:

  • El primer parámetro se refiere a la variable que vamos a filtrar.
  • El segundo parámetro se refiere al filtro a aplicar, y es opcional. En caso de no indicarlo, se aplicará el filtro por defecto.
  • El tercer parámetro se refiere a las opciones del filtro. Solo se indicará para ciertos filtros.

Veamos un ejemplo:

<?php
   $correo="[email protected]";
   if ( !filter_var ( $correo, FILTER_VALIDATE_EMAIL ) )
      echo "El correo introducido no es valido";
?>

El anterior ejemplo muestra como se válida un correo electrónico. Si el correo que tenemos en la variable **$correo** no fuese correcto, se mostraría por pantalla el mensaje de error:

Como se ha comentado anteriormente, existen filtros para validar y filtros para corregir:

Filtros para validar

  • FILTER_VALIDATE_BOOLEAN
  • FILTER_VALIDATE_EMAIL
  • FILTER_VALIDATE_FLOAT
  • FILTER_VALIDATE_INT
  • FILTER_VALIDATE_IP
  • FILTER_VALIDATE_REGEXP
  • FILTER_VALIDATE_URL

Filtros para sanear (corregir)

  • FILTER_SANITIZE_EMAIL
  • FILTER_SANITIZE_ENCODED
  • FILTER_SANITIZE_MAGIC_QUOTES
  • FILTER_SANITIZE_NUMBER_FLOAT
  • FILTER_SANITIZE_NUMBER_INT
  • FILTER_SANITIZE_SPECIAL_CHARS
  • FILTER_SANITIZE_STRING
  • FILTER_SANITIZE_STRIPPED
  • FILTER_SANITIZE_URL
  • FILTER_UNSAFE_RAW

Más información en la sección específica de Filtros en el manual online de PHP

http://docs.php.net/manual/es/book.filter.php

results matching ""

    No results matching ""