/** * http输出。 * @param array $data 要输出的数据 * @param string $content_type 输出格式json,xml,plain * @todo 既然是static,应该放lib里? */ public static function output($r, $content_type) { //参考http://cn2.php.net/manual/en/function.header.php if ($r['result']['status']['code'] != 200) { header('HTTP/1.1 ' . $r['result']['status']['code'] . ' ' . $r['result']['status']['msg']); //module header('Status: ' . $r['result']['status']['code'] . ' ' . $r['result']['status']['msg']); //cgi } switch ($content_type) { case 'application/json': header('Content-Type: application/json; charset=UTF-8'); //google.com用的是UTF-8。没找到标准规定大小写。todo if (!isset($r['result']['data']) || !is_array($r['result']['data'])) { $r['result']['data'] = (object) array(); //一直输出json对象 } echo StrLib::decodeUnicode(json_encode($r)); break; case 'application/xml': header('Content-Type: application/xml; charset=UTF-8'); //todo array to xml break; case 'text/plain': header('Content-Type: text/plain; charset=UTF-8'); //todo break; } return true; }