Los últimos tutoriales de desarrollo web
 

PHP filtros


datos Validación = determinar si los datos están en la forma apropiada.

Desinfección de datos = Eliminar cualquier carácter ilegal de los datos.


La extensión de PHP Filtrar

filtros PHP se utilizan para validar y desinfectar entrada externa.

La extensión de filtro PHP tiene muchas de las funciones necesarias para el control de entrada del usuario, y está diseñado para hacer la validación de datos más fácil y rápido.

El filter_list() función se puede utilizar para enumerar lo que ofrece la extensión filtro de PHP:

Ejemplo

<table>
  <tr>
    <td>Filter Name</td>
    <td>Filter ID</td>
  </tr>
  <?php
  foreach (filter_list() as $id =>$filter) {
      echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>
</table>
Ejecutar ejemplo »

¿Por qué utilizar filtros de búsqueda?

Muchas aplicaciones web reciben de entrada externa. Datos de entrada / externos pueden ser:

  • La entrada del usuario de un formulario
  • Cookies
  • datos de servicios web
  • las variables del servidor
  • resultados de la consulta de base de datos

Siempre debe validar los datos externos!
los datos presentados no válidos pueden conducir a problemas de seguridad y romper su página web!
Mediante el uso de filtros de PHP puede estar seguro de que su aplicación obtiene la entrada correcta!


PHP filter_var() Función

El filter_var() la función tanto validar y desinfecte datos.

El filter_var() función filtra una sola variable con un filtro especificado. Se necesitan dos piezas de datos:

  • La variable que desea comprobar
  • El tipo de verificación para utilizar

Desinfectar una cadena

En el siguiente ejemplo se utiliza la filter_var() función para quitar todas las etiquetas HTML de una cadena:

Ejemplo

<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Ejecutar ejemplo »

Validar un número entero

El ejemplo siguiente utiliza la filter_var() función para comprobar si los $ int variable es un número entero. Si $ int es un entero, la salida del código anterior será: "Integer is valid" . Si $ int no es un entero, la salida será: "Integer is not valid" :

Ejemplo

<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
    echo("Integer is valid");
} else {
    echo("Integer is not valid");
}
?>
Ejecutar ejemplo »

Consejo: filter_var() y el problema con 0

En el ejemplo anterior, si $ int se establece en 0, la función anterior devolverá "Integer is not valid" . Para resolver este problema, utilice el código abajo:

Ejemplo

<?php
$int = 0;

if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
    echo("Integer is valid");
} else {
    echo("Integer is not valid");
}
?>
Ejecutar ejemplo »

Validar una dirección IP

En el siguiente ejemplo se utiliza la filter_var() función para comprobar si los $ ip variable es una dirección IP válida:

Ejemplo

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
    echo("$ip is a valid IP address");
} else {
    echo("$ip is not a valid IP address");
}
?>
Ejecutar ejemplo »

Desinfectar y validar una dirección de correo electrónico

En el siguiente ejemplo se utiliza la filter_var() la función de eliminar primero todos los caracteres no válidos de la variable $ correo electrónico, a continuación, comprobar si se trata de una dirección de correo electrónico válida:

Ejemplo

<?php
$email = "[email protected]";

// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
    echo("$email is a valid email address");
} else {
    echo("$email is not a valid email address");
}
?>
Ejecutar ejemplo »

Desinfectar y validar una URL

En el siguiente ejemplo se utiliza la filter_var() la función de eliminar primero todos los caracteres no válidos desde una dirección URL, a continuación, comprobar si $ url es una URL válida:

Ejemplo

<?php
$url = "http://www.w3ii.com";

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
}
?>
Ejecutar ejemplo »

PHP completa filtro de referencia

Para una referencia completa de todas las funciones de filtro, vaya a nuestra completa PHP filtro de referencia. Compruebe cada filtro para ver qué opciones están disponibles y banderas.

La referencia contiene una breve descripción y ejemplos de uso, para cada función!