3

关于php int64 限制,如果 uri 有一个 int64 参数,如何防止 GET 错误地将其转换为数字并简单地将其保留为字符串?

http://some.com?id=1707541557936130

然后

echo $_GET['id'] => 1.7075415579361E+15

如何防止这种情况并$_GET['id']成为字符串 1707541557936130

现在的工作方式$_GET无法使用。需要自己解析$_SERVER["QUERY_STRING"]。但是永远不知道什么时候php会抓取一个变量并再次错误地转换。

注意:afaik 这将是 32 位而不是64 位 php 安装的问题。

4

4 回答 4

4

_GET/_POST/_COOKIE 中的所有内容都是字符串。该数据不会被转换为数字,除非你做了一些强制它被解释为数字的事情。

echo $_GET['id']; // echoes your big number
echo $_GET['id'] + 0; // forces an int conversion
于 2012-01-03T02:54:52.187 回答
0

如果当前解决方案不起作用,您可以将字符串字符附加到整数,例如

http://some.com?id=i1707541557936130

此外,如果是浮动显示方式的问题,您可以使用number_format()

$id = (string) number_format($_GET['id']);
echo $id;
于 2012-01-03T13:53:36.230 回答
0

这应该可以完成工作。

echo (string) $_GET['id'];
于 2012-01-03T02:55:30.157 回答
0

咬紧牙关安装 64 位 - 无论如何,这就是您服务器上的内容

于 2012-01-03T07:39:45.967 回答