深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 873|回复: 0
打印 上一主题 下一主题

jsonAPI的源码分析

[复制链接]

104

主题

171

帖子

1177

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1177
跳转到指定楼层
楼主
发表于 2019-7-13 22:57:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
jsonAPI的源码分析


处理数据进入的处理:

版本一:
  1. //提取post过来的参数   V1
  2. foreach($_POST as $k=>$v)
  3. {
  4.    $ret[strtolower($k)]=$v;
  5. }
复制代码


版本二:
  1. //提取post过来的参数 V2版
  2. function object_to_array($obj)
  3. {
  4.     $_arr= is_object($obj) ? get_object_vars($obj) : $obj;
  5.     foreach($_arr as $key=> $val)
  6.     {
  7.         $val= (is_array($val) || is_object($val)) ?  object_to_array($val) : $val;
  8.         $arr[$key] = $val;
  9.     }
  10.     return $arr;
  11. }
  12. //提取post过来的参数
  13. $ary=object_to_array($_POST);
  14. foreach($ary as $k=>$v)
  15. {
  16.    if(is_array($v))
  17.    {
  18.        foreach($v as $k1=>$v1)
  19.        {
  20.            $ret[strtolower($k1)]=$v1;
  21.         }
  22.    }
  23.    else
  24.    {
  25.       $ret[strtolower($k)]=$v;
  26.    }
  27. }
复制代码


版本三:
  1. function object_to_array($obj)
  2. {
  3.     $_arr= is_object($obj) ? get_object_vars($obj) : $obj;
  4.     foreach($_arr as $key=> $val)
  5.     {
  6.         $val= (is_array($val) || is_object($val)) ?  object_to_array($val) : $val;
  7.         $arr[$key] = $val;
  8.     }
  9.     return $arr;
  10. }
  11. $ary=array();
  12. if (empty($_POST)){
  13.     $content = file_get_contents('php://input');
  14.     $ary    = (array)json_decode($content, true);
  15. } else {
  16.         $ary=object_to_array($_POST);
  17. }  
  18. foreach($ary as $k=>$v)
  19. {
  20.    if(is_array($v))
  21.    {
  22.        foreach($v as $k1=>$v1)
  23.        {
  24.            $ret[strtolower($k1)]=$v1;
  25.         }
  26.    }
  27.    else
  28.    {
  29.       $ret[strtolower($k)]=$v;
  30.    }
  31. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-4 21:10 , Processed in 0.025546 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表