我的数据库的其中一行有联系人表有字符变化列作为电话值 3162e6313358
$return_data = array('phone' => $contact_phone);
echo json_encode($return_data, JSON_NUMERIC_CHECK);
这段代码没有给我任何输出。 我搜索了这个人给出了解决方案,例如 ('phone' => '".$contact_phone."') 这是工作。 我不想为每个数组元素进行类型转换 但我需要通用解决方案。
谢谢。
最佳答案
选项 1(最佳)
从用户输入中获取数值(ID、计数、数字状态代码、 bool 值等)后立即将它们转换为数字(
$_GET[]
、$_POST []
) 或来自数据库。当它们从用户输入中提取时,无论如何转换都应该是数据验证的一部分。将电话“号码”保留为字符串;它们不是数字,毕竟它们只是数字串,中间或末尾有或没有起始零和非数字字符。还将其他看起来是数字但实际上不是数字的值保留为字符串:例如信用卡号。
从对
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/