summaryrefslogtreecommitdiff
path: root/includes/libs/HttpStatus.php
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-05-01 15:32:59 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-05-01 15:32:59 -0400
commit6dc1997577fab2c366781fd7048144935afa0012 (patch)
tree8918d28c7ab4342f0738985e37af1dfc42d0e93a /includes/libs/HttpStatus.php
parent150f94f051128f367bc89f6b7e5f57eb2a69fc62 (diff)
parentfa89acd685cb09cdbe1c64cbb721ec64975bbbc1 (diff)
Merge commit 'fa89acd'
# Conflicts: # .gitignore # extensions/ArchInterWiki.sql
Diffstat (limited to 'includes/libs/HttpStatus.php')
-rw-r--r--includes/libs/HttpStatus.php28
1 files changed, 24 insertions, 4 deletions
diff --git a/includes/libs/HttpStatus.php b/includes/libs/HttpStatus.php
index 809bfdf5..442298a6 100644
--- a/includes/libs/HttpStatus.php
+++ b/includes/libs/HttpStatus.php
@@ -26,11 +26,10 @@
class HttpStatus {
/**
- * Get the message associated with HTTP response code $code
+ * Get the message associated with an HTTP response status code
*
- * @param $code Integer: status code
- * @return String or null: message or null if $code is not in the list of
- * messages
+ * @param int $code Status code
+ * @return string|null Message, or null if $code is not known
*/
public static function getMessage( $code ) {
static $statusMessage = array(
@@ -88,4 +87,25 @@ class HttpStatus {
return isset( $statusMessage[$code] ) ? $statusMessage[$code] : null;
}
+ /**
+ * Output an HTTP status code header
+ *
+ * @since 1.26
+ * @param int $code Status code
+ */
+ public static function header( $code ) {
+ static $version = null;
+ $message = self::getMessage( $code );
+ if ( $message === null ) {
+ trigger_error( "Unknown HTTP status code $code", E_USER_WARNING );
+ return false;
+ }
+
+ if ( $version === null ) {
+ $version = isset( $_SERVER['SERVER_PROTOCOL'] ) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.0' ? '1.0' : '1.1';
+ }
+
+ header( "HTTP/$version $code $message" );
+ }
+
}