Mit dieser Funktion kannst du eine übergebene Variable auf vielerlei Gesichtspunkte prüfen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?php /** * Mit dieser Funktion kannst du eine übergebene Variable auf vielerlei Gesichtspunkte prüfen. * * @param mixed $var, array $validation * @return bool * @see http://www.php-function.de/funktion/strings/check_var/ */ function check_var($var, $validation){ if($validation["optional"] && empty($var)) return true; foreach($validation as $name => $val){ switch($name){ // Minimaler Wert (für Integers) case "min": if($var < $val) return false; break; // Maximaler Wert (für Integers) case "max": if($var > $val) return false; break; // Regulärer Ausdruck case "preg": if(!preg_match($val, $var)) return false; break; // Genaue Länge case "len": if(strlen($var) != $val) return false; break; // Maximale Länge case "maxlen": if(strlen($var) > $val) return false; break; // Minimale Länge case "minlen": if(strlen($var) < $val) return false; break; // Einen der angegebenen Werte case "enum": if(!in_array($var, $val)) return false; break; // Zugelassene Werte case "in_array": if(!in_array($var, $val)) return false; break; // Filter (FILTER_VALIDATE_INT, FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_FLOAT, FILTER_VALIDATE_FLOAT, FILTER_VALIDATE_URL, FILTER_VALIDATE_EMAIL, FILTER_VALIDATE_IP) case "filter": switch(strtolower($val)){ case "int": $val = FILTER_VALIDATE_INT; break; case "boolean": $val = FILTER_VALIDATE_BOOLEAN; break; case "float": $val = FILTER_VALIDATE_FLOAT; break; case "url": $val = FILTER_VALIDATE_URL; break; case "email": $val = FILTER_VALIDATE_EMAIL; break; case "ip": $val = FILTER_VALIDATE_IP; break; } if(!filter_var($var, $val)) return false; break; // Typüberprüfung case "type": switch(strtolower($val)){ case "int": if(is_array($var) OR !preg_match("/^+$/", $var)) return false; break; case "float": if(is_array($var) OR !preg_match("/^(+)([\.\,])(+)$/", $var)) return false; break; case "floatde": if(is_array($var) OR !preg_match("/^(+)([\,])(+)$/", $var)) return false; break; case "floaten": if(is_array($var) OR !preg_match("/^(+)([\.])(+)$/", $var)) return false; break; case "string": if(is_array($var) OR !is_string($var)) return false; break; case "array": if(!is_array($var)) return false; break; case "int": if(!is_int($var)) return false; break; case "bool": if(!is_bool($var)) return false; break; case "numeric": if(!is_numeric($var)) return false; break; } break; case "format": switch(strtolower($val)){ case "telephone": if(!preg_match("/^(\(?\+?*\)?)?[0-9_\- \(\)\/]*$/", $var)) return false; break; case "plz": if(!preg_match("/^{5}$/", $var)) return false; break; } break; } } return true; } ?> |
Schreibe einen Kommentar