function reco_prep($param, $func) { $val = (string) @$_POST[$param]; switch ($func) { // ------------------------------------------------------------------ case "none": return $val; // ------------------------------------------------------------------ // ------------------------------------------------------------------ case "url": $opts = array("options" => array("default" => null)); return filter_var($val, FILTER_VALIDATE_URL); // ------------------------------------------------------------------ // ------------------------------------------------------------------ case "secret": if (strlen($param) != 32 || !preg_match("#[a-f0-9]{32}#", $param)) { return null; } return reco_server_checksecret($param) ? true : null; // ------------------------------------------------------------------ // ------------------------------------------------------------------ case "chk": return md5($param); // ------------------------------------------------------------------ // ------------------------------------------------------------------ default: return reco_panic(sprintf("Unknown func(%s)", $func)); // ------------------------------------------------------------------ } }
function reco_server_const($name = "", $preset = "") { static $name_arr; static $preset_arr; if ($name_arr === null) { // Словность токенов из текста $preset_arr["all_token"] = array("Mono", "Di", "Trio", "Passage"); // Словные константы $preset_arr["all_wordstat"] = array("StrictLocalTF", "StrictLocalTD", "StrictLocalPF", "StrictLocalPD", "StrictLocalBF", "StrictLocalBD", "StrictLocalDF", "StrictLocalDD", "StrictGlobalTF", "StrictGlobalTD", "StrictGlobalPF", "StrictGlobalPD", "StrictGlobalBF", "StrictGlobalBD", "StrictGlobalDF", "StrictGlobalDD", "BaseLocalTF", "BaseLocalTD", "BaseLocalPF", "BaseLocalPD", "BaseLocalBF", "BaseLocalBD", "BaseLocalDF", "BaseLocalDD", "BaseGlobalTF", "BaseGlobalTD", "BaseGlobalPF", "BaseGlobalPD", "BaseGlobalBF", "BaseGlobalBD", "BaseGlobalDF", "BaseGlobalDD"); // Полный набор имён $arr = array_merge($preset_arr["all_token"], $preset_arr["all_wordstat"]); $name_arr = array_combine($arr, $arr); // Дополнительные константы $name_arr["foo"] = "bar"; } if (isset($name_arr[$name])) { return $name_arr[$name]; } if (isset($preset_arr[$preset])) { return $preset_arr[$preset]; } reco_panic(__FUNCTION__, sprintf("Name or preset not found (%s|%s)", $name, $preset)); }