Please note that FILTER_FLAG_HOST_REQUIRED and FILTER_FLAG_SCHEME_REQUIRED have disappeared. They were previously mentioned in the constants page but it seems that host and scheme are now required by default for the validate_url filter.
Drapeaux des filtres
| ID | Utilisé avec | Description |
|---|---|---|
| FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Supprime les caractères dont la valeur numérique est <32. |
| FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Supprime les caractères dont la valeur numérique est >127. |
| FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | Autorise un point (.) comme séparateur fractionnaire pour les nombres. |
| FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT | Autorise une virgule (,) comme séparateur fractionnaire pour les nombres. |
| FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | Autorise un e ou un E pour la notation scientifique dans les nombres. |
| FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | Si ce drapeau est présent, les simples quotes (') et les doubles (") ne seront pas encodées. |
| FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encode tous les caractères dont la valeur numérique est <32. |
| FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encode tous les caractères dont la valeur numérique est >127. |
| FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encode les &. |
| FILTER_NULL_ON_FAILURE | FILTER_VALIDATE_BOOLEAN | Retourne NULL pour les valeurs booléennes non reconnues. |
| FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | Prend en compte les nombres octals précédés d'un zéro (0). Ceci ne fonctionne que pour les chiffres 0-7. |
| FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | Prend en compte les nombres héxadécimaux précédés de 0x ou 0X. Ceci ne fonctionne que pour a-fA-F0-9. |
| FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | Autorise une adresse IP au format IPv4. |
| FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | Autorise une adresse IP au format IPv6. |
| FILTER_FLAG_NO_PRIV_RANGE | FILTER_VALIDATE_IP |
Echoue la validation pour les intervales privés IPv4: 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16. Echoue la validation pour les adresses IPv6 commençant par FD ou FC. |
| FILTER_FLAG_NO_RES_RANGE | FILTER_VALIDATE_IP | Echoue la validation pour les intervales IPv4 réservés: 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24 et 224.0.0.0/4. Ce drapeau ne concerne pas les adresses IPv6. |
| FILTER_FLAG_PATH_REQUIRED | FILTER_VALIDATE_URL | Oblige URL à contenir un chemin. |
| FILTER_FLAG_QUERY_REQUIRED | FILTER_VALIDATE_URL | Oblige URL à contenir une chaine de requête. |
bohwaz
06-Feb-2012 12:52
php dot net at ewood dot users dot cementhorizon dot com
19-Oct-2010 04:42
In order to filter on loopback addresses try this :
<?php
function FILTER_FLAG_NO_LOOPBACK_RANGE($value) {
// Fails validation for the following loopback IPv4 range: 127.0.0.0/8
// This flag does not apply to IPv6 addresses
return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ? $value :
(((ip2long($value) & 0xff000000) == 0x7f000000) ? FALSE : $value);
}
$var = filter_var('127.0.0.1', FILTER_CALLBACK, array('options' => 'FILTER_FLAG_NO_LOOPBACK_RANGE'));
// Returns FALSE
$var = filter_var('74.125.19.103', FILTER_CALLBACK, array('options' => 'FILTER_FLAG_NO_LOOPBACK_RANGE'));
// Returns '74.125.19.103'
// To filter Private IP ranges and Loopback ranges
$var = filter_var('127.0.0.1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)
&& filter_var('127.0.0.1', FILTER_CALLBACK, array('options' => 'FILTER_FLAG_NO_LOOPBACK_RANGE'));
// Returns FALSE
?>
(If someone wants to write in handling for the IPv6 loopback interface at "::1" go for it.)
-Gene Wood
