Inicia sesión



Tenemos la posibilidad de validar cadenas con php (desde emails, urls, textos, ips, etc.) con el uso de unos filtros ya definidos. Validar cadenas con php como ya sabemos nos pueden ayudar en muchas ocasiones y que mejor si ya existen filtros que toman en cuenta cosas que a lo mejor ni sabíamos sobre ciertos tipos de datos.


Para validar cadenas con php se utiliza la función filter_var(); y acepta (dependiendo del tipo de dato), dos a más parámetros.


  • El primero, la cadena a validar
  • El segundo, la id del filtro para el tipo de dato. Aquí podéis ver los tipos de ids de los filtros para validar.
  • Los demás parámetros depende del tipo de dato, pero son para ir restringiendo el dato.

La ventaja de que el segundo parámetro sea una id de un filtro para validar, es que tambien se puede poner una id para sanear (arreglar) la cadena a evaluar. Es ahí donde se toman en cuenta muchas cosas que a uno a lo mejor ni se le acurria para validar algo.

Aquí podeis ver las ids de los filtros para sanear.

 

Validar cadenas de tipo email 


Un email tiene la característica de contar con un arroba (@) y un punto y algo (.com por ejemplo), y que además no contenga caracteres raros con ¿, ~, €, etc.

<?php
$cadena = "[email protected]";
if(filter_var( $cadena, FILTER_VALIDATE_EMAIL )){
    echo "El email es correcto";
}else{
    echo "El email es incorrecto";
}
?>

La id FILTER_VALIDATE_EMAIL valida datos de tipo email, por lo que la función te dirá si es correcto o es falso. Pero como dije que existía la posibilidad de arreglar la cadena (por si el usuario se equivoco al presionar una tecla de más o algo parecido), para eso esta FILTER_SANITIZE_EMAIL.

<?php
$cadena = "[email protected] tutoriales|enlinea.es";
if(filter_var( $cadena, FILTER_SANITIZE_EMAIL )){
    echo "El email es correcto";
}else{
    echo "El email es incorrecto";
}
?>
Esto nos dará que el email es correcto porque en realidad al final se capturó [email protected] y no ja€[email protected]tutoriales|enlinea.es

 

Validar cadenas de tipo url 


Para validar cadenas de tipo url la id es FILTER_VALIDATE_URL, y pasa casi lo mismo, con que no existan los prefijos https:// y el www. esto estará incorrecto.

<?php
$cadena = "https://tutorialesenlinea.es";
if(filter_var( $cadena, FILTER_VALIDATE_URL )){
    echo "La url es correcto";
}else{
    echo "La url es incorrecto";
}
?>

Igual que con el email, para eliminar caracteres raros, se usa el FILTER_SANITIZE_URL.


Para pedir que no solo sea la url del sitio raiz, si no que exista una ruta como minimo, le podemos añadir otra id que es FILTER_FLAG_PATH_REQUIRED.

<?php
$cadena = "https://tutorialesenlinea.es/blog";
if(filter_var( $cadena, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED )){
    echo "La url es correcto";
}else{
    echo "La url es incorrecto";
}
?>

Ahora que si queremos que exista una petición en la url, en vez de la anterior escribimos FILTER_FLAG_QUERY_REQUIRED.

<?php
$cadena = "https://tutorialesenlinea.es/blog.php?nombre=jama";
if(filter_var( $cadena, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED )){
    echo "La url es correcto";
}else{
    echo "La url es incorrecto";
}
?>

En fin, existen muchos filtros para validar cadenas de muchas cosas con filter_var


filter_var


(PHP 5 >= 5.2.0, PHP 7)

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

Parámetros


variable


Valor a filtrar


filter


El ID del filtro a aplicar. La página Tipos de filtros del manual enumera los filtros disponibles. Si se omite, se utilizará FILTER_DEFAULT, que es equivalente a FILTER_UNSAFE_RAW. Esto resultará en que no se realice ningún tipo de filtro de forma predeterminada.


options


Array asociativo de opciones o disyunción lógica de flags. Si un filtro acepta opciones, se pueden indicar flags en el campo "flags" del array. Para el filtro "callback" debería pasarse el tipo callable. La llamada de la función de retorno (callback) debe aceptar un argumento, el valor a ser filtrado y debe retornar el valor tras su filtrado/saneamiento.
<?php
// Para filtros que acepten opciones, usar este formato
$opciones = array(
    'options' => array(
        'default' => 3, // valor a retornar si el filtro falla
        // más opciones aquí
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $opciones);

// Para filtros que únicamente acepten flags, se pueden pasar directametne
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// Para filtros que únicamente acepten flags, también pueden pasarse como
// array
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
                  array('flags' => FILTER_NULL_ON_FAILURE));

// Filtro "callback2
function foo($value)
{
    // Formato esperado: Apellido, Nombre
    if (strpos($value, ", ") === false) return false;
    list($surname, $givennames) = explode(", ", $value, 2);
    $empty = (empty($surname) || empty($givennames));
    $notstrings = (!is_string($surname) || !is_string($givennames));
    if ($empty || $notstrings) {
        return false;
    } else {
        return $value;
    }
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Valores devueltos


Retorna los datos filtrados o FALSE si el filtro falla.


Ejemplos


Ejemplo #1 Un ejemplo de filter_var()

<?php
var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>
El resultado del ejemplo sería:
string(15) "[email protected]"
bool(false)

Te sugiero seguir leyendo...

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2016-02-06
  • Categorias: Lenguajes De Programacion php Noticias Tutorial

Validar cadenas con PHP Validar cadenas con PHP...
Tutoriales en linea
¿Te gusta el tutorial?




Información
Usuarios que no esten registrados no pueden dejar comentarios, te invitamos a que te registre!






Cómo jugar Ajedrez Online TL

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2020-09-18
  • Categorias: WebSite Juegos Noticias Tutorial

Cómo encontrar un teléfono Android perdido

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2020-09-17
  • Categorias: Android Telefonia Smartphone Tablet Tutorial

Configura tu servidor VPN en Windows

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2020-09-15
  • Categorias: Windows Internet Red Wifi Seguridad Noticias Tutorial

Como crear una web con el lenguaje HTML

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2020-09-08
  • Categorias: Diseño Web Lenguajes De Programacion CSS3 html5 Html WebSite webmasters Cursos Noticias Tutorial

Introducción Al Lenguaje JS

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2020-09-08
  • Categorias: Diseño Web javascript Cursos Noticias Tutorial

Curso básico de Javascript

  • Autor:
  • Editor: Tutoriales En Linea
  • Fecha:2020-09-08
  • Categorias: Diseño Web javascript Cursos Noticias Tutorial