無論是網頁還是移動端,都需要向伺服器請求資料,那麼作為php服務端,如何返回標準的資料呢?
現在主流的資料格式無非就是json和xml,下面我們來看看如何用php來封裝乙個返回這兩種格式資料的類
我們先定義乙個響應類
class response1、以json格式返回資料
json格式返回資料比較簡單,直接將我們後台獲取到的資料,以標準json格式返回給請求端即可
//按json格式返回資料2、以xml格式返回資料public static function json($code,$message,$data=array())
$result=array(
"code"=>$code,
"message"=>$message,
"data"=>$data
);echo json_encode($result);
}
這種方式需要遍歷data裡面的資料,如果資料裡有陣列還要遞迴遍歷。還有一種特殊情況,當陣列的下標為數字時,xml格式會報錯,需要將xml中數字標籤替換
//按xml格式返回資料3、將兩種格式封裝為乙個方法,完整**如下:public static function xmlencode($code,$message,$data=array())
$result=array(
"code"=>$code,
"message"=>$message,
"data"=>$data
);header("content-type:text/xml");
$xml="<?xml version='1.0' encoding='utf-8'?>";
$xml.="";
$xml.=self::xmltoencode($result);
$xml.="";
echo $xml;
}public static function xmltoencode($data)'";
$key="item";
}$xml.="< >";
$xml.=is_array($value)?self::xmltoencode($value):$value;
$xml.="";
}return $xml;}}
class response這樣我們呼叫show方法時,需要傳遞四個引數,第四個引數為想要返回的資料格式,預設為json格式,效果如下:$result=array(
"code"=>$code,
"message"=>$message,
"data"=>$data
);if($type=='json')elseif($type=='xml')else
}//按json格式返回資料
public static function json($code,$message,$data=array())
$result=array(
"code"=>$code,
"message"=>$message,
"data"=>$data
);echo json_encode($result);
}//按xml格式返回資料
public static function xmlencode($code,$message,$data=array())
$result=array(
"code"=>$code,
"message"=>$message,
"data"=>$data
);header("content-type:text/xml");
$xml="<?xml version='1.0' encoding='utf-8'?>";
$xml.="";
$xml.=self::xmltoencode($result);
$xml.="";
echo $xml;
}public static function xmltoencode($data)'";
$key="item";
}$xml.="< >";
$xml.=is_array($value)?self::xmltoencode($value):$value;
$xml.="";
}return $xml;
}}$data=array(1,231,123465,array(9,8,'pan'));
response::show(200,'success',$data,'json');
我們再呼叫一次show方法,以xml格式返回資料:
response::show(200,'success',$data,'xml');效果如下:
這樣我們就完成了對這兩種資料格式的封裝,可以隨意返回這兩種格式的資料了
PHP以json或xml格式返回請求資料的方法
無論是網頁還是移動端,都需要向伺服器請求資料,那麼作為php服務端,如何返回標準的資料呢?現在主流的資料格式無非就是json和xml,下面我們來看看如何用php來封裝乙個返回這兩種格式資料的類 我們先定義乙個響應類 class response 1 以json格式返回資料 json格式返回資料比較簡...
xml和json格式輸出
class response type isset get format get format self json result array code code,message message,data data if type json elseif type array elseif type ...
Redis 以JSON格式儲存物件
redis settings redis.host 192.168.0.106 redis.port 6379 redis.pass password redis.dbindex 0 redis.expiration 3000 redis.maxidle 300 redis.maxactive 60...