回声 json_encode($return_data, JSON_NUMERIC_CHECK); 数字中的字符“e”不起作用

mah*_*ale 5 php postgresql json

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

$return_data = array('phone' => $contact_phone);
echo json_encode($return_data, JSON_NUMERIC_CHECK);
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

axi*_*iac 2

选项1(最好)

  1. $_GET[]从用户输入 ( 、 ) 或数据库中获取数值(ID、计数、数字状态代码、布尔值)后,立即将其转换为数字$_POST[]。当从用户输入中提取它们时,转换无论如何都应该是数据验证的一部分。

  2. 将电话“号码”保留为字符串;它们不是数字,毕竟它们只是数字字符串,有或没有起始零以及中间或末尾的非数字字符。还要将其他看似数字但实际上不是数字的值保留为字符串:例如信用卡号。

  3. JSON_NUMERIC_CHECK从调用中删除参数json_encode();如果你实现了上面的#1,你就不再需要它了。

选项 2(解决方法)

' '从数据库获取电话号码时,请在电话号码后面附加一个空格字符 ( )。当它显示在网页中时,它不会产生太大的差异(如果有的话)。

json_encode()不会再相信它是一个浮点数,即使它以+or开头0