接前一篇
Response.php :包含一个 Request 类,即输出类。根据接收到的 Content-Type,将 Request 类返回的数组拼接成对应的格式,加上 header 后输出
- php
- /**
- * 输出类
- */
- class Response {
- const HTTP_VERSION = "HTTP/1.1";
- //返回结果
- public static
- function sendResponse($data) {
- //获取数据
- if ($data) {
- $code = 200;
- $message = 'OK';
- } else {
- $code = 404;
- $data = array('error' = >'Not Found');
- $message = 'Not Found';
- }
- //输出结果
- header(self: :HTTP_VERSION." ".$code." ".$message);
- $content_type = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : $_SERVER['HTTP_ACCEPT'];
- if (strpos($content_type, 'application/json') !== false) {
- header("Content-Type: application/json");
- echo self: :encodeJson($data);
- } else if (strpos($content_type, 'application/xml') !== false) {
- header("Content-Type: application/xml");
- echo self: :encodeXml($data);
- } else {
- header("Content-Type: text/html");
- echo self: :encodeHtml($data);
- }
- }
- //json格式
- private static
- function encodeJson($responseData) {
- return json_encode($responseData);
- }
- //xml格式
- private static
- function encodeXml($responseData) {
- $xml = new SimpleXMLElement('');
- foreach($responseData as $key = >$value) {
- if (is_array($value)) {
- foreach($value as $k = >$v) {
- $xml - >addChild($k, $v);
- }
- } else {
- $xml - >addChild($key, $value);
- }
- }
- return $xml - >asXML();
- }
- //html格式
- private static
- function encodeHtml($responseData) {
- $html = "";
- foreach($responseData as $key = >$value) {
- $html. = "";
- if (is_array($value)) {
- foreach($value as $k = >$v) {
- $html. = "".$k."".$v."";
- }
- } else {
- $html. = "".$key."".$value."";
- }
- $html. = "";
- }
- $html. = "";
- return $html;
- }
- }
index.php :入口文件,调用 Request 类取得数据后交给 Response 处理,最后返回结果
- php
- //数据操作类
- require('Request.php');
- //输出类
- require('Response.php');
- //获取数据
- $data = Request: :getRequest();
- //输出结果
- Response: :sendResponse($data);
未完待续
来源: http://www.cnblogs.com/luyucheng/p/6016884.html