'OK', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Authorization Required', 403 => 'Forbidden', 404 => 'Not Found', 500 => 'Internal Server Error', 503 => 'Service Temporarily Unavailable', ][$code]; } #=============================================================================== # Trim all strings in argument #=============================================================================== private static function trim($mixed) { if(is_array($mixed)) { return array_map('self::trim', $mixed); } return trim($mixed); } #=============================================================================== # Check if all elements of $arguments are set as key of $data #=============================================================================== private static function issetData($data, $arguments) { foreach($arguments as $key) { if(is_array($key)) { if(!isset($data[key($key)]) OR $data[key($key)] !== $key[key($key)]) { return FALSE; } } else if(!isset($data[$key]) OR !is_string($data[$key])) { return FALSE; } } return TRUE; } #=============================================================================== # Return null or the value (if set) from one of the three requests attributes #=============================================================================== public static function returnKey($data, Array $paths) { $current = &$data; foreach($paths as $path) { if(!isset($current[$path]) OR (!is_string($current[$path]) AND !is_array($current[$path]))) { return NULL; } $current = &$current[$path]; } return $current; } #=============================================================================== # Return GET value #=============================================================================== public static function GET() { return self::returnKey(self::$GET, func_get_args()); } #=============================================================================== # Return POST value #=============================================================================== public static function POST() { return self::returnKey(self::$POST, func_get_args()); } #=============================================================================== # Return FILE value #=============================================================================== public static function FILE() { return self::returnKey(self::$FILE, func_get_args()); } #=============================================================================== # Check if all elements of func_get_args() are set key of self::$POST #=============================================================================== public static function issetPOST() { return self::issetData(self::$POST, func_get_args()); } #=============================================================================== # Check if all elements of func_get_args() are set key of self::$GET #=============================================================================== public static function issetGET() { return self::issetData(self::$GET, func_get_args()); } #=============================================================================== # Check if all elements of func_get_args() are set key of self::$FILE #=============================================================================== public static function issetFILE() { return self::issetData(self::$FILE, func_get_args()); } #=============================================================================== # Return HTTP request method or check if request method equals with $method #=============================================================================== public static function requestMethod($method = NULL) { if(!empty($method)) { return ($_SERVER['REQUEST_METHOD'] === $method); } return $_SERVER['REQUEST_METHOD']; } #=============================================================================== # Return REQUEST_URI #=============================================================================== public static function requestURI() { return $_SERVER['REQUEST_URI'] ?? FALSE; } #=============================================================================== # Return HTTP_USER_AGENT #=============================================================================== public static function useragent() { return trim($_SERVER['HTTP_USER_AGENT'] ?? ''); } #=============================================================================== # Return HTTP_REFERER #=============================================================================== public static function referer() { return trim($_SERVER['HTTP_REFERER'] ?? ''); } #=============================================================================== # Return response status #=============================================================================== public static function responseStatus($code = NULL) { if(!empty($code)) { self::sendHeader(sprintf('HTTP/1.1 %d %s', $code, self::getStatuscode($code))); } return http_response_code(); } #=============================================================================== # Send a HTTP header line to the client #=============================================================================== public static function responseHeader($field, $value) { self::sendHeader("{$field}: {$value}"); } #=============================================================================== # Send a HTTP redirect to the client #=============================================================================== public static function redirect($location, $code = 303, $exit = TRUE) { self::sendHeader(sprintf('HTTP/1.1 %d %s', $code, self::getStatuscode($code))); self::sendHeader("Location: {$location}"); $exit AND exit(); } #=============================================================================== # Send a new HTTP header line to the client if headers are not already sent #=============================================================================== private static function sendHeader($header) { if(!headers_sent()) { header($header); } } } ?>