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

时间:2015-01-13 12:13:10

标签: php json postgresql

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

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

选项1(最好的)

  1. 一旦从用户输入($_GET[]$_POST[])或从数据库获取数字,就将数值(ID,计数,数字状态代码,布尔值a.s.o.)转换为数字。当从用户输入中提取它们时,转换应该是数据验证的一部分。

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

  3. JSON_NUMERIC_CHECK的调用中删除json_encode()参数;如果您在上面实施#1,则不再需要它。

  4. 选项2(解决方法)

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

    json_encode()不再相信它是一个浮点数,即使它以+0开头也是如此。