博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php开发APP接口-封装通信接口改进版
阅读量:7224 次
发布时间:2019-06-29

本文共 3585 字,大约阅读时间需要 11 分钟。

hot3.png

 $code, 'message' => $message, 'data' => $data, ); switch (strtolower($type)) {     case 'json':         //如果是json,则返回json数据         self::json($code,$message,$data);         break;     case 'xml':         //如果是xml,这返回xml数据         self::xml($code,$message,$data);         break;     case 'array':         //如果传进来的值是array,这打印出这个数组         header('Content-Type:text/html; charset=utf-8');         var_dump($result);         break;               default:         #根据需要,处理业务逻辑         echo '不能识别信息';         break; } } /** * 按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 ); header('Content-Type:application/json; charset=utf-8'); echo self::convertArrayToJson($result); exit; } /**************************************************************  *  * 使用特定function对数组中所有元素做处理  * @param string &$array 要处理的字符串  * @param string $function 要执行的函数  * @return boolean $apply_to_keys_also 是否也应用到key上  * @access public  *  *************************************************************/ public static function arrayRecursive(&$array, $function, $apply_to_keys_also = false) {     static $recursive_counter = 0;     if (++$recursive_counter > 1000) {         die('possible deep recursion attack');     }     foreach ($array as $key => $value) {         if (is_array($value)) {             self::arrayRecursive($array[$key], $function, $apply_to_keys_also);         } else {             $array[$key] = $function($value);         }         if ($apply_to_keys_also && is_string($key)) {             $new_key = $function($key);             if ($new_key != $key) {                 $array[$new_key] = $array[$key];                 unset($array[$key]);             }         }     }     $recursive_counter--; } /**  * 转换数组为JSON格式  * @param 数组:$arr  */ public static function convertArrayToJson($arr) {     self::arrayRecursive($arr, 'urlencode', true);     $json = json_encode($arr);     return urldecode($json); } /** * 按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, ); header("Content-Type:text/xml"); $xml = "
\n"; $xml .= "
\n"; $xml .= self::xmlToEncode($result); $xml .= "
"; echo $xml; } public static function xmlToEncode($data) {     //准备一个接收的空数组 $xml = $attr = ""; //将这个数组的键,作为节点名称,值作为内容 foreach($data as $key => $value) {     /*约定一个规则,如果键是数字的话,格式为
aaa*/ if(is_numeric($key)) { $attr = " id='{$key}'";//属性的值需要带上引号,不然报错 $key = "item"; } $xml .= "<{$key}{$attr}>"; //如果$value的值是个多维数组的话,需要递归遍历 $xml .= is_array($value) ? self::xmlToEncode($value) : $value; $xml .= "
\n"; } return $xml; }}$arr=array(    'name'=>'学PHP的小蚂蚁 改进版---wh',    'age'=>'24',    'sex'=>'male',    'url'=>'原博客 http://my.oschina.net/woshixiaomayi/blog',    'like'=>array(        'eat'=>'apple',        'drink'=>'milk',        'happy',        'lucky'    ));//Response::json(200,"success",$arr);//Response::xml(200,'success',$arr);// Response::show(200,'success',$arr,'xml');// Response::show(200,'success',$arr,'array');Response::show(200,'success',$arr);

转载于:https://my.oschina.net/xiaokedou/blog/543472

你可能感兴趣的文章
Log4j tutorial with Tomcat examples
查看>>
Kong 网关
查看>>
三层结构视频中的DBHelper.cs
查看>>
[转载] 信息系统项目管理师视频教程——18 项目沟通管理
查看>>
在Windows下建立QT开发环境
查看>>
Jedis、JedisPool、ShardedJedis和ShardedJedisPool,java对redis的基本操作
查看>>
[转载] 致命伴侣
查看>>
HTML5 localStorage本地存储实际应用举例
查看>>
Scala访问修饰符
查看>>
实习感悟
查看>>
产品经理网站小结
查看>>
Bootstrap 附加导航插件
查看>>
如何设置启动SMTP、POP3以及IMAP4的SSL服务端口?
查看>>
自制函数strcpy
查看>>
gSoap开发(三)——WSDL简介
查看>>
软件RAID5项目实战!!!
查看>>
Java基础学习总结(21)——数组
查看>>
js格式化日期
查看>>
定时与延时任务
查看>>
Squid 日志分析 和反向代理
查看>>