php – echo json_encode($return_data,JSON_NUMERIC_CHECK);数字中的字符’e’不起作用

我的数据库中有一行有联系人表,其字符变化列为电话,值为3162e6313358

$return_data = array('phone' => $contact_phone);
echo json_encode($return_data,JSON_NUMERIC_CHECK);

这段代码没有给我任何输出.
搜索了这个人提供的解决方案,如(‘phone’=>’“.$contact_phone.”’)
这是有效的.
我不想为每个数组元素进行类型转换
但我需要通用解决方案.

谢谢.

解决方法

选项1(最好的)

>一旦从用户输入($_GET [],$_POST [])或从数据库获取数字值,就将数值(ID,计数,数字状态代码,布尔值a.s.o.)转换为数字.当从用户输入中提取它们时,转换应该是数据验证的一部分.
>将电话号码保持为字符串;它们不是数字,毕竟它们只是数字串,在中间或末尾有或没有起始零和非数字字符.还要保留字符串其他值看起来是数字但实际上不是数字:例如信用卡号.
>从调用json_encode()删除JSON_NUMERIC_CHECK参数;如果你在上面实现#1,你不再需要它了.

选项2(解决方法)

数据库获取电话号码时,请在电话号码后附加空格字符(”).当它显示在网页中时,它将没有太大的区别(如果有的话).

json_encode()不会再认为它是浮点数,即使它以0开头也不是.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...