PHP接口数据的封装XML和JSON(转)

Posted 迷神图卷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP接口数据的封装XML和JSON(转)相关的知识,希望对你有一定的参考价值。

原博主的代码有误无法使用,本人调试修改后可以使用。

<?php
//定义生成接口数据类
class Api
{
    /*
     * 生成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
         );
         return json_encode($result);
     }

    /*
     * 生成xml数据格式
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * return string
     */
     public static function xml($code, $message = \'\', $data = array())
     {
         if(!is_numeric($code)) {
             return \'\';
         }
         $result = array(
             \'code\' => $code,
             \'message\' => $message,
             \'data\' => $data
         );
         //构造xml数据
         //使返回的数据以xml格式显示
         header("Content-Type:text/xml");
         //开始拼xml数据
         $xml = "<?xml version=\'1.0\' encoding=\'UTF-8\'?>";
         //根节点
         $xml .= "<root>";
         //创建一个额外函数来构造
         $xml .= self::xmlToEncode($result);
         $xml .= "</root>";
         return $xml;
     }
     //构造xml数据函数
     public static function xmlToEncode($data)
     {
         $xml = "";
         $attr = "";
         foreach($data as $key => $value)
         {
             //如果传递的数组是没有键值的话,<0>,<1>这种类型的节点是不合法的,所有就要判断了,如果是数字就这样<item id=\'0\'>显示
             if(is_numeric($key)) {
                 $attr = "id = \'{$key}\'";
                 $key = "item ";
             }
             //如果是数字就加上$attr
             $xml .= "<{$key}{$attr}>";
             //如果value是数组就进行递归
             $xml .= is_array($value) ? self::xmlToEncode($value) : $value;
             $xml .= "</{$key}>";
         }
         return $xml;
     }
}
//下面就来测试一下吧
$data = array(
    \'id\' => 1,
    \'name\' => \'zjp\',
    \'content\' => array(
        \'sex\' => \'男\',
        \'age\' => \'24\',
        \'num\' => array(1,3,5,7,9)
    )
);
//$xml = Api::xml(200, "返回数据成功", $data);
echo Api::xml(200, "返回数据成功", $data);
//xmlToEncode($data);
//$json = Api::json(200, "返回数据成功", $data);
?>

 运行结果

原文链接:http://blog.csdn.net/sinat_21125451/article/details/51353615

以上是关于PHP接口数据的封装XML和JSON(转)的主要内容,如果未能解决你的问题,请参考以下文章

java 调用cxfWebService 接口返回类型是xml格式数据显示在jsp页面中该如何做到

php解析封装JSON与XML

php xml 和json转成Array(数组)格式和数组转成xml和json

php xml 和json转成Array(数组)格式和数组转成xml和json

php xml 和json转成Array(数组)格式和数组转成xml和json

PHP开发APP接口