[web-php] master: Update status_header() helper function

From: Date: Mon, 05 Jul 2021 13:32:50 +0000
Subject: [web-php] master: Update status_header() helper function
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-29399@lists.php.net to get a copy of this message
Author: Sara Golemon (sgolemon) Date: 2021-07-05T13:25:11Z Commit: https://github.com/php/web-php/commit/3707f9a7c493df2465f645f70952a7495ccb57a1 Raw diff: https://github.com/php/web-php/commit/3707f9a7c493df2465f645f70952a7495ccb57a1.diff Update status_header() helper function Changed paths: M include/errors.inc Diff: diff --git a/include/errors.inc b/include/errors.inc index f143ff2fb..793d08750 100644 --- a/include/errors.inc +++ b/include/errors.inc @@ -88,34 +88,26 @@ function error_nomirror($mirror) { } // Send out a proper status header -function status_header($num) +function status_header(int $status): bool { - // Set status text - switch ($num) { - case 200: $status = "OK"; break; - case 301: $status = "Moved Permanently"; break; - case 302: $status = "Found"; break; - case 404: $status = "Not Found"; break; - default: return FALSE; - } + $text = [ + 200 => 'OK', + 301 => 'Moved Permanently', + 302 => 'Found', + 404 => 'Not Found', + ]; + if (!isset($text[$status])) { + return false; + } - // Figure out HTTP protocol version - use 1.1 answer for 1.1 request, - // answer with HTTP/1.0 for any other (ancient or futuristic) user - switch (strtoupper($_SERVER['SERVER_PROTOCOL'])) { - case 'HTTP/1.0': - @header("HTTP/1.0 $num $status"); - break; - - case 'HTTP/1.1': - default: - @header("HTTP/1.1 $num $status"); - break; - } + // Only respond with HTTP/1.0 for a 1.0 request specifically. + // Respond with 1.1 for anything else. + $proto = strcasecmp($_SERVER['SERVER_PROTOCOL'], 'HTTP/1.0') ? '1.1' : '1.0'; - // BC code for PHP < 4.3.0 - @header("Status: $num $status", TRUE, $num); + @header("HTTP/$proto $status {$text[$status]}"); + @header("Status: $status {$text[$status]}", true, $status); - return TRUE; + return true; } /******************************************************************************

« previous php.webmaster (#29399) next »