Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Methode zur Rückgabe angeforderter Daten im JSON- oder XML-Format

PHP-Methode zur Rückgabe angeforderter Daten im JSON- oder XML-Format

不言
不言Original
2018-05-31 15:22:221845Durchsuche

In diesem Artikel wird hauptsächlich die Methode zur Rückgabe von Anforderungsdaten im JSON- oder XML-Format vorgestellt. Jetzt kann ich sie mit Ihnen teilen.

Ob es sich um eine handelt Webseite oder Das mobile Endgerät muss Daten vom Server anfordern. Wie kann man als PHP-Server Standarddaten zurückgeben?

Die aktuellen Mainstream-Datenformate sind nichts anderes als JSON und XML. Schauen wir uns an, wie man mit PHP eine Klasse kapselt, die Daten in diesen beiden Formaten zurückgibt

Lass uns zuerst Definieren Sie eine Antwortklasse

class response{
}

1. Geben Sie Daten im JSON-Format zurück

json-Format Die Rückgabe von Daten ist relativ einfach. Geben Sie die von unserem Hintergrund erhaltenen Daten einfach im Standard-JSON-Format an den Anforderer zurück

//按json格式返回数据
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);
}

2 , Daten im XML-Format zurückgeben

Diese Methode erfordert das Durchlaufen der Daten in den Daten. Wenn die Daten ein Array enthalten, muss es rekursiv durchlaufen werden. Es gibt auch einen Sonderfall: Wenn der Index des Arrays eine Zahl ist, meldet das XML-Format einen Fehler. Sie müssen die Zahlen-Tags im XML durch

//按xml格式返回数据
 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=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>";
  $xml.="<root>";
  $xml.=self::xmlToEncode($result);
  $xml.="</root>";
  echo $xml;
 }
 public static function xmlToEncode($data){
  $xml=$attr=&#39;&#39;;
  foreach($data as $key=>$value){
   if(is_numeric($key)){
    $attr="id=&#39;{$key}&#39;";
    $key="item";
   }
   $xml.="<{$key} {$attr}>";
   $xml.=is_array($value)?self::xmlToEncode($value):$value;
   $xml.="</{$key}>";
  }
  return $xml;
 }
}

3. Kapseln Sie die beiden Formate in einer Methode. Der vollständige Code lautet wie folgt:

class response{
 public static function show($code,$message,$data=array(),$type='json'){
  /**
  *按综合方式输出通信数据
  *@param integer $code 状态码
  *@param string $message 提示信息
  *@param array $data 数据
  *@param string $type 数据类型
  *return string
  */
  if(!is_numeric($code)){
   return '';
  }
  $result=array(
   "code"=>$code,
   "message"=>$message,
   "data"=>$data
  );
  if($type=='json'){
   self::json($code,$message,$data);
   exit;
  }elseif($type=='xml'){
   self::xmlEncode($code,$message,$data);
   exit;
  }else{
   //后续添加其他格式的数据
  }
 }
 //按json格式返回数据
 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);
 }
 //按xml格式返回数据
 public static function xmlEncode($code,$message,$data=array()){
  if(!is_numeric($code)){
   return &#39;&#39;;
  }
  $result=array(
   "code"=>$code,
   "message"=>$message,
   "data"=>$data
  );
  header("Content-Type:text/xml");
  $xml="<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>";
  $xml.="<root>";
  $xml.=self::xmlToEncode($result);
  $xml.="</root>";
  echo $xml;
 }
 public static function xmlToEncode($data){
  $xml=$attr=&#39;&#39;;
  foreach($data as $key=>$value){
   if(is_numeric($key)){
    $attr="id=&#39;{$key}&#39;";
    $key="item";
   }
   $xml.="<{$key} {$attr}>";
   $xml.=is_array($value)?self::xmlToEncode($value):$value;
   $xml.="</{$key}>";
  }
  return $xml;
 }
}
$data=array(1,231,123465,array(9,8,'pan'));
response::show(200,'success',$data,'json');

Auf diese Weise müssen wir beim Aufrufen der Show-Methode vier Parameter übergeben. Der vierte Parameter ist das Datenformat, das Sie zurückgeben möchten. Der Standardwert ist das JSON-Format. Der Effekt ist wie folgt:

Wir rufen die Show-Methode erneut im XML-Format auf. Rückgabedaten:

response::show(200,&#39;success&#39;,$data,&#39;xml&#39;);

Der Effekt ist wie folgt:

Auf diese Weise sind wir fertig. Um diese beiden Datenformate zu kapseln, können Sie nach Belieben Daten in diesen beiden Formaten zurückgeben

Verwandt Empfehlungen:


Dies kann bei der Installation von PHP im CGI-Modus auftreten. Angriffe und Lösungen

Das obige ist der detaillierte Inhalt vonPHP-Methode zur Rückgabe angeforderter Daten im JSON- oder XML-Format. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn