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

标签 php json postgresql

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

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

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

谢谢。

最佳答案

选项 1(最佳)

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

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

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

选项 2(解决方法)

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

json_encode() 不会再相信它是一个 float ,即使它以 +0 开头。

关于php - echo json_encode($return_data, JSON_NUMERIC_CHECK);数字中的字符 'e' 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27921943/

相关文章:

php - 如果性别类型为 0,则存储 M;如果性别类型为 1,则存储 F 使用 php 和 mysql

php - 在 PostgreSQL 中存储一对多或多对多关系的最佳方式是什么?

php - 无法插入到我的 sql 表中

javascript - 从数据库填充数据列表

javascript - 在 PHP、MySQL 和 JS 站点上存储琐碎数据的有效方法

json - 发生错误时如何更改响应?

postgresql - 有效地找到 a < (max(a) for a given b) 的行

javascript - 在php中从mysql复制带有嵌入式下拉列表的html表单javascript

postgresql - PostgreSQL 表的大小错误(?)

sql - PostgreSQL:意外的数组元素