filter_var()

Como continuación de la primera parte de este artículo, explicaremos la función filter_var(). Muy útil para validar expresiones regulares predefinidas en dicha función, por ejemplo URL’s o IP’s. Para ello indicaremos en el segundo parámetro de la función, el filtro a usar (pudiendo configurarlo en ocasiones con opciones, en el tercer parámetro). [symple_box]filter_var($variable_para_filtrar, $tipo_filtro, $opciones)[/symple_box]Teniendo en cuenta que filter_var() nos devuelve lo que le pasemos por primer parámetro si la validación es correcta, podremos validar con filtros para EMAIL’s, URL’s, IP’s. Por ejemplo, validaríamos si un EMAIL es correcto:

<!--?php if(filter_var($email, FILTER_VALIDATE_EMAIL) == $email) echo 'el email: '.$email.'es correcto'; ?-->

Sabiendo que la función devuelve false si la validación es incorrecta, podríamos validar de otra manera, por ejemplo, una IP de tipo IPv4, usando el tercer parámetro filter_var(), el cual es opcional:
<!--?php if(!filter_var($url, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) echo 'la URL: '.$url.'es incorrecta'; ?-->

ALGUNOS TIPOS DE FILTROS (1er parámetro) Y OPCIONES (2º parámetro)

[symple_box]
EMAIL:
FILTER_VALIDATE_EMAIL:  Valida el email
FILTER_SANITIZE_EMAIL:  Elimina caracteres no permitidos[/symple_box]
[symple_box]URL’s: 
FILTER_VALIDATE_URL : valida si es una URL
2º parámetro de la función (opciones):
FILTER_FLAG_SCHEME_REQUIRED: valida si es una URL correcta (http://www.dominio.es)
FILTER_FLAG_PATH_REQUIRED: (http://www.dominio.es/blog)
FILTER_FLAG_QUERY_REQUIRED: valida si la URL tiene petición (http://www.dominio.es/blog.php?user=victor)[/symple_box]
[symple_box]IP’s:
FILTER_VALIDATE_IP: valida si es una IP

2º parámetro de la función (opciones):
FILTER_FLAG_IPV4: de tipo IPV4
FILTER_FLAG_IPV6: de tipo IPV6
FILTER_NO_PRIV_RANGE: de rango privado
FILTER_FLAG_NO_RES_RANGE: de rango NO reservado[/symple_box]

[symple_box]SANEAR MENSAJES: Ya que en PHP se pueden presentar conflictos cuando se envían mensajes combinando comillas sencillas con dobles. Utilizaremos el filtro FILTER_SANITIZE_MAGIC_QUOTES.[/symple_box]

Más información sobre los tipos de filtros.