1. 程式人生 > >PHP開發APP介面之封裝通訊介面

PHP開發APP介面之封裝通訊介面

PHP開發APP介面之封裝通訊介面


按json方式輸出通訊資料


   /**
    * 按json方式輸出通訊資料
    * @param integer $code   狀態碼
    * @param string $message 提示資訊
    * @param array $data     資料
    * return string
    */
    public static function json($code, $message = '', $data = array()) {

        if(!is_numeric($code
)) { return ''; } $result = array( 'code' => $code, 'message' => $message, 'data' => $data ); echo json_encode($result); exit; }

按xml方式輸出通訊資料


   /**
    * 按xml方式輸出通訊資料
    * @param integer $code   狀態碼
    * @param
string $message 提示資訊 * @param array $data 資料 * return string */
public static function xmlEncode($code, $message, $data = array()) { if(!is_numeric($code)) { return ''; } $result = array( 'code' => $code, 'message' => $message
, 'data' => $data, ); header("Content-Type:text/xml"); $xml = "<?xml version='1.0' encoding='UTF-8'?>\n"; $xml .= "<root>\n"; $xml .= self::xmlToEncode($result); $xml .= "</root>"; echo $xml; } public static function xmlToEncode($data) { $xml = $attr = ""; foreach($data as $key => $value) { if(is_numeric($key)) { $attr = " id='{$key}'"; $key = "item"; } $xml .= "<{$key}{$attr}>"; $xml .= is_array($value) ? self::xmlToEncode($value) : $value; $xml .= "</{$key}>\n"; } return $xml; }

按綜合方式輸出通訊資料


    const JSON = "json";
    /**
    * 按綜合方式輸出通訊資料
    * @param integer $code   狀態碼
    * @param string $message 提示資訊
    * @param array $data     資料
    * @param string $type    資料型別
    * return string
    */
    public static function show($code, $message = '', $data = array(), $type = self::JSON) {
        if(!is_numeric($code)) {
            return '';
        }

        $type = isset($_GET['format']) ? $_GET['format'] : self::JSON;

        $result = array(
            'code' => $code,
            'message' => $message,
            'data' => $data,
        );

        if($type == 'json') {
            self::json($code, $message, $data);
            exit;
        } elseif($type == 'array') {
            var_dump($result);
        } elseif($type == 'xml') {
            self::xmlEncode($code, $message, $data);
            exit;
        } else {
            // TODO
        }
    }

這種方式可根據App端傳入的format格式來判斷是返回json還是xml。