diff --git a/include.misc.php b/include.misc.php index a0ce52b..aeedd37 100644 --- a/include.misc.php +++ b/include.misc.php @@ -335,3 +335,66 @@ function str_lreplace($search, $replace, $subject) return $subject; } + +function http_status_code($code) +{ + $codes = array( + 100 => "Continue", + 101 => "Switching Protocols", + 200 => "OK", + 201 => "Created", + 202 => "Accepted", + 203 => "Non-Authoritative Information", + 204 => "No Content", + 205 => "Reset Content", + 206 => "Partial Content", + 300 => "Multiple Choices", + 301 => "Moved Permanently", + 302 => "Moved Temporarily", + 303 => "See Other", + 304 => "Not Modified", + 305 => "Use Proxy", + 400 => "Bad Request", + 401 => "Unauthorized", + 402 => "Payment Required", + 403 => "Forbidden", + 404 => "Not Found", + 405 => "Method Not Allowed", + 406 => "Not Acceptable", + 407 => "Proxy Authentication Required", + 408 => "Request Time-out", + 409 => "Conflict", + 410 => "Gone", + 411 => "Length Required", + 412 => "Precondition Failed", + 413 => "Request Entity Too Large", + 414 => "Request-URI Too Large", + 415 => "Unsupported Media Type", + 418 => "I'm a teapot", + 500 => "Internal Server Error", + 501 => "Not Implemented", + 502 => "Bad Gateway", + 503 => "Service Unavailable", + 504 => "Gateway Time-out", + 505 => "HTTP Version not supported", + ); + + if(array_key_exists($code, $codes)) + { + $text = $codes[$code]; + } + else + { + throw new Exception("The specified HTTP status code does not exist."); + } + + if(strpos(php_sapi_name(), "cgi") !== false) + { + header("Status: {$code} {$text}"); + } + else + { + $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'); + header("{$protocol} {$code} {$text}"); + } +}