加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:ThinkPHP内置jsonRPC的缺陷分析

发布时间:2020-12-13 02:16:39 所属栏目:PHP教程 来源:网络整理
导读:《ThinkPHP内置jsonRPC的缺陷分析》要点: 本文介绍了ThinkPHP内置jsonRPC的缺陷分析,希望对您有用。如果有疑问,可以联系我们。 PHP实例 本文较为详细的分析了ThinkPHP内置jsonRPC的缺陷.供大家参考研究.具体分析如下: PHP实例 最近在开发ios应用,

《ThinkPHP内置jsonRPC的缺陷分析》要点:
本文介绍了ThinkPHP内置jsonRPC的缺陷分析,希望对您有用。如果有疑问,可以联系我们。

PHP实例本文较为详细的分析了ThinkPHP内置jsonRPC的缺陷.分享给大家供大家参考.具体分析如下:

PHP实例最近在开发ios应用,要开发ios应用,当然要用到服务器,用服务器必然要选用远程调用协议,因为之前本人一直都是用php开发的,所以选用thinkphp当框架的apache服务器.

PHP实例至于远程调用协议,经过思考,还是选用jsonRPC吧,比较简单方便,翻了一下thinkphp(是3.2版本)的手册,发现thinkphp还是支持jsonRPC的,这不错啊,不用自己去写了(当然自己写写也不是什么麻烦的事).

PHP实例简单地,用thinkphp做客户端,去调用thinkphp服务器端的接口,好用.

PHP实例接下来是android端,随便去网上找了个包(android-json-rpc.jar),调用一下接口,诶!也好用,进展很顺利.

PHP实例接下来就换ios了,取github上找了个objc-JSONRpc的项目,拿来调用接口,不好用,很正常,可能是我找的项目有问题,于是我又换了一个Demiurgic-JSON-RPC,还是不好用,我开始对程序产生了怀疑,因为web端和android端调用都没问题,所以我把焦点定位到了我的ios程序,我的天,花了我半天时间,我硬是没找出问题,我还用ios端调用了其他人提供的jsp客户端的接口,也没问题啊.

PHP实例后来,我开始看thinkphp内置的jsonRPC模块,经过不停的调试(各种调试,又删代码,又Dbug),发现了这样一行代码:

代码如下:
$result = @call_user_func_array(array($object,$request['method']),$request['params'])

PHP实例注意到这个函数没,call_user_func_array,array,点进去看参数说明,果然,$request['params']必须是数组类型,不是数组死活不认,更可恨的是,thinkphp没有对这个参数进行严格的校验,于是都不知道怎么错的.

PHP实例知道了这个原因就好办了,前面加上校验.

代码如下:
if (is_array($request['params'])) {
????? $request['params'] = array_values($request['params']);
} else {
????? $request['params'] = array($request['params']);
}

这样就完美办理了问题.

PHP实例希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助.

编程之家培训学院每天发布《ThinkPHP内置jsonRPC的缺陷分析》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读