0

我有php代码

preg_replace( "/([0-9]{2})([0-9]{4})([0-9]{4})([0-9]{4})/", 
               "$1 $2 $3 $4", 
               121234123412341234)

这样做的结果是1.21234123412E+17。我需要成为12 1234 1234....

也许我需要使用其他功能?

4

2 回答 2

2

在输入周围使用单引号

echo preg_replace("/([0-9]{2})([0-9]{4})([0-9]{4})([0-9]{4})/", "$1 $2 $3 $4", '121234123412341234');

输出

12 1234 1234 12341234

键盘

于 2013-06-25T12:11:41.087 回答
0

使用字符串。PHP无法处理如此大的整数,除非它们被转换为浮点数:

整数的大小取决于平台,尽管通常值约为 20 亿的最大值(即 32 位有符号)。64 位平台的最大值通常约为 9E18。PHP 不支持无符号整数。自 PHP 4.4.0 和 PHP 5.0.5 起,可以使用常量 PHP_INT_SIZE 确定整数大小,使用常量 PHP_INT_MAX 确定最大值。

在我的电脑中,PHP_INT_MAX是 2147483647。

总结一下,对比一下:

var_dump(121234123412341234, '121234123412341234');
float(1.2123412341234E+17)
string(18) "121234123412341234"
于 2013-06-25T12:13:24.667 回答