예제 #1
0
 /**
  * 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;
 }