php app接口对接,对之前用PHP写接口,与APP对接一些问题汇总

我们在用PHP写API接口的时候,对于数值型的处理问题进行一下汇总。因为PHP是弱类型语言,在与一些强类型语言对接的时候,经常出问题。

1、PHP对长整型数据有溢出问题

2、PHP从Mysql数据库里取数据的时候,取出的数据类型都是string类型。不管在定义表字段是int还是bigint等,取出来都是string类型

3、对于接口一般都是body提交,如果直接header输出的话,是接受不到数据的

那么用PHP写API接口的时候,如何处理呢?

第一个问题:升级PHP版本,升级到PHP7。对长整型的数字就不会溢出,当然你的服务器一般都是64位,和操作系统的位数也有一定的关系。

第二个问题:API接口最终返回给APP端都是JSON格式的加密,那么在PHP把数据从数据库中取出来时候,

json_encode($array, JSON_NUMERIC_CHECK);

注意“JSON_NUMERIC_CHECK”,把字符串类型的数字转换成数字型,这样就不会也问题了

第三个问题:直接贴代码:

$data = array('requestInfo' => $data);

$params = array('http' => array(

'method' => 'POST',

'header'=>array(

"Content-Type:application/x-www-form-urlencoded"

),

'content' => http_build_query($data)

));

$ctx = stream_context_create($params);

$res = file_get_contents(API_URL.$url, false, $ctx);

if(preg_match('/^\xEF\xBB\xBF/',$res)) {

$res=substr($res,3);

}

如果不用array(‘requestInfo’=>$data),再封装一次的话,直接在'content'=>$data,接口层是得不到数据的,不管你采用file_get_contents还是curl,都得不到数据~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值