From 02e8b2e8d0b248604267da93fd3b8d874c84c1f3 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Sat, 7 May 2016 22:06:17 +0800 Subject: [PATCH] =?UTF-8?q?Request=E7=B1=BB=E5=A2=9E=E5=8A=A0url=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20Response=E7=B1=BB=E5=A2=9E=E5=8A=A0sendHttpStatus?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Request.php | 15 +++++++++ library/think/Response.php | 62 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/library/think/Request.php b/library/think/Request.php index 5dc13ebd..74202d99 100644 --- a/library/think/Request.php +++ b/library/think/Request.php @@ -66,6 +66,21 @@ class Request 'csv' => 'text/csv', ]; + /** + * 获取当前URL + * @access public + * @param string $url URL地址 + * @return string + */ + public static function url($url = '') + { + if (!empty($url)) { + self::$url = $url; + } else { + return self::$url ?: $_SERVER[Config::get('url_request_uri')]; + } + } + /** * 获取基础URL * @access public diff --git a/library/think/Response.php b/library/think/Response.php index 9b5cbcb9..cf3f285c 100644 --- a/library/think/Response.php +++ b/library/think/Response.php @@ -247,4 +247,66 @@ class Response header($name . ':' . $value); } + /** + * 发送HTTP状态 + * @param integer $code 状态码 + * @return void + */ + public static function sendHttpStatus($code) + { + static $_status = [ + // Informational 1xx + 100 => 'Continue', + 101 => 'Switching Protocols', + // Success 2xx + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + // Redirection 3xx + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Moved Temporarily ', // 1.1 + 303 => 'See Other', + 304 => 'Not Modified', + 305 => 'Use Proxy', + // 306 is deprecated but reserved + 307 => 'Temporary Redirect', + // Client Error 4xx + 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 Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + // Server Error 5xx + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported', + 509 => 'Bandwidth Limit Exceeded', + ]; + if (isset($_status[$code])) { + header('HTTP/1.1 ' . $code . ' ' . $_status[$code]); + // 确保FastCGI模式下正常 + header('Status:' . $code . ' ' . $_status[$code]); + } + } }