Cargando

Ir a contenido

X
Deja tu iPhone en la mesa y escucha todo lo que dicen cuando tu no estás
ATENCION
Ver Más! Alguien con su iPhone te podría estar escuchando (aun estando bloqueado). Mira cómo lo hacen.

 


PHP como utilizar la extensión Filter o filtro de datos

Esta extensión filtros de datos o Filter sirve para validar y verificar datos o estructuras que sean inseguras. Esto es especialmente útil cuando el origen de datos contiene datos desconocidos o provienen de fuentes como archivos externos o el ingreso de datos escrito por el usuario, por ejemplo, información que puede provenir de un formulario HTML.


Escrito por jul 09 2015 10:05


Hay dos tipos principales de filtrado: validación y sanitización.

El filtro de validación se utiliza para comprobar si los datos cumplen con ciertos requisitos. Por ejemplo, si asignamos el filtro FILTER_VALIDATE_EMAIL se determinará si el dato a validar es dirección de correo electrónico válida, pero no va a cambiar los datos en sí. El filtro ya sabe como validar el dato.

La función a utilizar sera filter_var(dato_a_validar, filtro)

Ejemplo validando un Email:
<?php

//email de ejemplo
$email = "demo@servidor.com";


if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {

  echo("$email es válido");
} else {

  echo("$email no es valido");
}

?>

Validad un numero

<?php
$enlace=”http://demophp.com”;


if (!filter_var($enlace, FILTER_VALIDATE_URL) === false) {

    echo("Es una url valida");
} else {

    echo("La url no es valida");
}

?>

Existen muchos filtro como ser

FILTER_VALIDATE_BOOLEAN  258  Validacion Booleana o Verdadero/Falso
FILTER_VALIDATE_FLOAT  259  Validacion numeros con decinales

FILTER_VALIDATE_INT  257  Validacion numeros enteros
FILTER_VALIDATE_IP  275  Validacion de IP
La Sanitización es el proceso por el cual se desinfecta o limpia los datos provenientes de fuentes inseguras, por lo que es posible revisar y eliminar caracteres no deseados. Por ejemplo, pasando FILTER_SANITIZE_EMAIL eliminará caracteres que no son apropiados para una dirección de correo electrónico que contenga, pero es importante saber que la sanitización no valida los datos.

Ejemplo:
<?php
//Ingresamos un email con caraceres no permititdos

$emailingresado = "demo?.php]!@servi?dor.com";

//Limpiamos el email
$emailseguro = filter_var($email, FILTER_SANITIZE_EMAIL);


//validamos el email

if (!filter_var($emailseguro, FILTER_VALIDATE_EMAIL) === false) {
  echo("$emailseguro es válido");

} else {
  echo("$emailsegurio no es valido");

}

echo $emailingresado.”    “.$emailseguro;
?>
Filtro para invocar funciones definidas por el usuario

El filtro FILTER_CALLBACK llama a una función definida por el usuario para aplicar a un tipo de dato o bien a una estructura a la que se le aplica el filtro.
<?php
function aplicardescuento($string)

  {
  return str_replace("10%", "25%", $string);

  }

$datos[0] = "Silla 10% de descuento!";
$datos[1] = "Mesa 10% de descuento!";

$datos[2] = "Vajilla 10% de descuento";
$datos[3] = "Manteleria 10% de descuento";


echo "Antes<br>";

for($i = 0; $i < count($datos); $i++) {
echo $datos[$i].'<br>';

}

echo '<br>';
echo "Despues<br>";

for($i = 0; $i < count($datos); $i++) {
echo filter_var($datos[$i], FILTER_CALLBACK,

array("options"=>"aplicardescuento")).'<br>';
}

?>

extension-filter.jpg



Como enviar parámetros a un filtro CALLBACK para procesar un dato desde la función o realizar una tarea determinada.

Veamos un ejemplo donde envío como parámetro un producto ya sea el nombre o el código y la cantidad y el precio unitario, luego invocare un filtro para calcular el importe final, esto puede servir para validar si el código del producto es correcto o bien filtrar el producto primero y luego buscar el precio y calcular o aplicar algún descuento o recargo.
<? echo "Filtro con parámetros <br><br>";


function calcular($dato, $valorA, $valorB)

{

    $calculo=$valorA+$valorB;
    return $dato.' ............  &euro;'.$calculo;

}

//Dato ingresado por el usuario
$dato = 'ProductoA';

$importe = filter_var($dato, FILTER_CALLBACK, array('options' => function($var) {
    return calcular($var, 20, 10);

}));

echo "Detalle de compra:<br>".$importe; ?>

extension-filter2.jpg



¿Cuando debería utilizar los filtros de validación o sanitización en una aplicación?

La mayoría de las web e intranets reciben datos de distintas fuentes algunas de bases de datos o de fuentes externas o bien por ingreso de datos de usuarios a través de un formulario, por ello utilizar los filtros garantiza que los datos sean fiables.
¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
  • -
  • 0


AYUDA A MEJORAR ESTE TUTORIAL!

¿Crees que puedes corregir o mejorar este tutorial? Puedes enviar tu Edición con los cambios que consideres útiles.

0 usuarios han editado este tutorial. ¡Edita y conviértete en un reconocido experto!


Tutoriales Relacionados



Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
8
VOTA
5
0%
4
100%
3
0%
2
0%
1
0%

  Información

  •   Publicado jul 09 2015 10:05
  •   Visitas 2K
  •   Nivel
    Avanzado