======[PHP] filterInputDefaults====== Erweiterung zu filter_input_array() ===== Funktion ===== Array([file] = 'test.png', [size] = 100, [test] = 'ungültiger Eintrag') * // eine Definition für filter_input_array() erweitert um die Einträge 'default' * $definition = array( * 'file' => FILTER_SANITIZE_STRING, * 'size' => array( * 'filter' => FILTER_VALIDATE_INT, * 'options' => array('min_range' => 30, 'max_range' => 200), * 'default' => 80), * 'type' => array( * 'filter' => FILTER_VALIDATE_REGEXP, * 'options' => array('regexp' => '/^(?:fit|stretch|cut)$/'), * 'default' => fit)); * $get = filterInputDefaults(INPUT_GET, $definition); * // $get -> Array([file] = 'test.png', [size] = 100, [type] = 'fit') */ function filterInputDefaults($type, $definition ){ // filter_input_array normal ausführen $myInputs = filter_input_array($type, $definition); // Falls keine Parameter übrig bleiben, die Inputs als leeren Array definieren if(!is_array($myInputs)) $myInputs = array(); // Die fehlenden Parameters ermitteln $diff = array_diff_key($definition, $myInputs); // Ein Array mit den fehlenden Paramters erstellen, values = NULL $diff = array_fill_keys(array_keys($diff), NULL); $myInputs = array_merge($myInputs, $diff); //Für jeden Eintrag prüfen: falls kein Wert vorhanden ist und ein 'default' definiert ist, diesen nehmen array_walk($myInputs, create_function('&$item, $key, $args', '$item = (is_null($item) && is_array($arg=$args[$key])) ? $arg["default"] : $item;'), $definition); return $myInputs; } ?> {{tag>PHP Function}}