api返回数据

控制器里调用方法


<?php

namespace app\admin\controller;

use app\admin\controller\Base;

class Index extends Base
{
    public function index(){
      
        $data = [
            'id'=>1,
            'name'=>'haima',
            'type'=>array(4,5,6),
            'type3'=>array(4,5,6,array("a","c","e")),

        ];
        // return Json('1','ok22',$data);
        show(200,'ok',$data);
    }
}


封装的common.php函数


/**
 *  ajax数据json数据返回
 * @param  [int] $code [结果码 0:正常 1:错误  /4**数据问题/5**服务器问题]
 * @param  [string] $msg  [返回的提示信息]
 * @param  [array]  $data [返回的数据]
 * @return [string]       [最终的json数据]
 */
function Json($code, $msg = '', $data = []) {
    if(!is_numeric($code)) die('返回的code状态码必需是整型');
    /*********** 组合数据  ***********/
    $result = [
        'code' => $code,
        'msg' => $msg,
        'data' => $data
    ];

    /*********** 返回信息并终止脚本  ***********/
    echo json_encode($result);die;
}

/**
 * 	作用:返回xml数据
 */
function xmlEncode($code,$msg,$data = [])
{
    if(!is_numeric($code)) return '';
    $result = [
        'code' => $code,
        'msg' => $msg,
        'data' => $data
    ];
    header("Content-Type: text/xml");
    $xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
    $xml .= "<root>\n";
    $xml .= xmlToEncde($data);
    $xml.="</root>";
    echo $xml;
}

function xmlToEncde($result)
{
    $xml = $attr = "";
    foreach ($result as $key=>$val)
    {
        if(is_numeric($key)){
            $attr = " id='{$key}'";
            $key = "item";
        }
        $xml .="<{$key}{$attr}>";
        $xml .= is_array($val)?xmlToEncde($val):$val;
        $xml .="</{$key}>\n";
    }
   
    return $xml;
}

function dd($var)
{
    echo '<pre>';
    dump($var);
    echo '</pre>';
    die;
}

效果:

posted @ 2019-07-29 10:08  HaimaBlog  阅读(900)  评论(0编辑  收藏  举报