PHP WebService2-Controller

总体类

<?php
class Response{
	const JSON='json';





?>

Json数据处理

/**
	*json format data
	*@param integer $code status code
	*@param string  $message message data
	*@param array   $data
	*return string
	*/
	public static function jsonEncode($code,$message='',$data=array()){
		if (!is_numeric($code)) {
			return '';
		}
		$result=array(
			'code'=>$code,
			'message'=>$message,
			'data'=>$data
		);

		echo json_encode($result);
		exit();
	}

XML数据处理


/**
	*xml format data
	*@param integer $code status code
	*@param string  $message message data
	*@param arrat   $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'?>
";
		$xml.="<root>
";
		$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}>
";
		}
		return $xml;
	}

XML-JSON混合数据处理


/**
	*xml/json format data
	*@param integer $code status code
	*@param string  $message message data
	*@param arrat   $data
	*@param string  $type  data 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::jsonEncode($code,$message,$data);
		}elseif($type=='xml'){
			self::xmlEncode($code,$message,$data);
		}else{
			self::jsonEncode($code,$message,$data);
		}
	}

测试调用


$data=array(
	'id'=>1,
	'bane'=>'valentine',
	'type'=>array(4,5,6)
);
Response::show(200,'success',$data);