1+ <?php
2+
3+ if (!function_exists ('http_response_code ' )) {
4+ function http_response_code ($ code = null )
5+ {
6+ static $ defaultCode = 200 ;
7+
8+ if (null != $ code ) {
9+ switch ($ code ) {
10+ case 100 : $ text = 'Continue ' ; break ; // RFC2616
11+ case 101 : $ text = 'Switching Protocols ' ; break ; // RFC2616
12+ case 102 : $ text = 'Processing ' ; break ; // RFC2518
13+
14+ case 200 : $ text = 'OK ' ; break ; // RFC2616
15+ case 201 : $ text = 'Created ' ; break ; // RFC2616
16+ case 202 : $ text = 'Accepted ' ; break ; // RFC2616
17+ case 203 : $ text = 'Non-Authoritative Information ' ; break ; // RFC2616
18+ case 204 : $ text = 'No Content ' ; break ; // RFC2616
19+ case 205 : $ text = 'Reset Content ' ; break ; // RFC2616
20+ case 206 : $ text = 'Partial Content ' ; break ; // RFC2616
21+ case 207 : $ text = 'Multi-Status ' ; break ; // RFC4918
22+ case 208 : $ text = 'Already Reported ' ; break ; // RFC5842
23+ case 226 : $ text = 'IM Used ' ; break ; // RFC3229
24+
25+ case 300 : $ text = 'Multiple Choices ' ; break ; // RFC2616
26+ case 301 : $ text = 'Moved Permanently ' ; break ; // RFC2616
27+ case 302 : $ text = 'Found ' ; break ; // RFC2616
28+ case 303 : $ text = 'See Other ' ; break ; // RFC2616
29+ case 304 : $ text = 'Not Modified ' ; break ; // RFC2616
30+ case 305 : $ text = 'Use Proxy ' ; break ; // RFC2616
31+ case 306 : $ text = 'Reserved ' ; break ; // RFC2616
32+ case 307 : $ text = 'Temporary Redirect ' ; break ; // RFC2616
33+ case 308 : $ text = 'Permanent Redirect ' ; break ; // RFC-reschke-http-status-308-07
34+
35+ case 400 : $ text = 'Bad Request ' ; break ; // RFC2616
36+ case 401 : $ text = 'Unauthorized ' ; break ; // RFC2616
37+ case 402 : $ text = 'Payment Required ' ; break ; // RFC2616
38+ case 403 : $ text = 'Forbidden ' ; break ; // RFC2616
39+ case 404 : $ text = 'Not Found ' ; break ; // RFC2616
40+ case 405 : $ text = 'Method Not Allowed ' ; break ; // RFC2616
41+ case 406 : $ text = 'Not Acceptable ' ; break ; // RFC2616
42+ case 407 : $ text = 'Proxy Authentication Required ' ; break ; // RFC2616
43+ case 408 : $ text = 'Request Timeout ' ; break ; // RFC2616
44+ case 409 : $ text = 'Conflict ' ; break ; // RFC2616
45+ case 410 : $ text = 'Gone ' ; break ; // RFC2616
46+ case 411 : $ text = 'Length Required ' ; break ; // RFC2616
47+ case 412 : $ text = 'Precondition Failed ' ; break ; // RFC2616
48+ case 413 : $ text = 'Request Entity Too Large ' ; break ; // RFC2616
49+ case 414 : $ text = 'Request-URI Too Long ' ; break ; // RFC2616
50+ case 415 : $ text = 'Unsupported Media Type ' ; break ; // RFC2616
51+ case 416 : $ text = 'Requested Range Not Satisfiable ' ; break ; // RFC2616
52+ case 417 : $ text = 'Expectation Failed ' ; break ; // RFC2616
53+ case 422 : $ text = 'Unprocessable Entity ' ; break ; // RFC4918
54+ case 423 : $ text = 'Locked ' ; break ; // RFC4918
55+ case 424 : $ text = 'Failed Dependency ' ; break ; // RFC4918
56+ case 426 : $ text = 'Upgrade Required ' ; break ; // RFC2817
57+ case 428 : $ text = 'Precondition Required ' ; break ; // RFC6585
58+ case 429 : $ text = 'Too Many Requests ' ; break ; // RFC6585
59+ case 431 : $ text = 'Request Header Fields Too Large ' ; break ; // RFC6585
60+
61+ case 500 : $ text = 'Internal Server Error ' ; break ; // RFC2616
62+ case 501 : $ text = 'Not Implemented ' ; break ; // RFC2616
63+ case 502 : $ text = 'Bad Gateway ' ; break ; // RFC2616
64+ case 503 : $ text = 'Service Unavailable ' ; break ; // RFC2616
65+ case 504 : $ text = 'Gateway Timeout ' ; break ; // RFC2616
66+ case 505 : $ text = 'HTTP Version Not Supported ' ; break ; // RFC2616
67+ case 506 : $ text = 'Variant Also Negotiates ' ; break ; // RFC2295
68+ case 507 : $ text = 'Insufficient Storage ' ; break ; // RFC4918
69+ case 508 : $ text = 'Loop Detected ' ; break ; // RFC5842
70+ case 510 : $ text = 'Not Extended ' ; break ; // RFC2774
71+ case 511 : $ text = 'Network Authentication Required ' ; break ; // RFC6585
72+
73+ default :
74+ $ code = 500 ;
75+ $ text = 'Internal Server Error ' ;
76+ }
77+
78+ $ defaultCode = $ code ;
79+
80+ $ protocol = (isset ($ _SERVER ['SERVER_PROTOCOL ' ]) ? $ _SERVER ['SERVER_PROTOCOL ' ] : 'HTTP/1.0 ' );
81+ header ($ protocol . ' ' . $ code . ' ' . $ text );
82+ }
83+
84+ return $ defaultCode ;
85+ }
86+ }
0 commit comments