在php5中,如何阻止GET(错误地)转换为数字?

发布于 2024-12-24 15:55:24 字数 600 浏览 2 评论 0原文

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

http://some.com?id=1707541557936130

那么

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

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

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

注意:据我所知,这在 32 位 php 安装上会出现问题,不会 64 位 php 安装。

in relation to php int64 limits, if the uri has a int64 argument, how do you prevent GET from wrongly converting it into numeric and simply keeping it as a string?

http://some.com?id=1707541557936130

then

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

how to prevent this and have $_GET['id'] be the string 1707541557936130?

the way $_GET works now is unusable. need to parse $_SERVER["QUERY_STRING"] myself. but then never know when php will grab a variable and incorrectly convert again.

NOTE: afaik this will be a problem on 32bit, not 64bit php installs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

江南月 2024-12-31 15:55:24

来自 _GET/_POST/_COOKIE 的所有内容都是一个字符串。该数据不会转换为数字,除非您执行了强制将其解释为数字的操作。

echo $_GET['id']; // echoes your big number
echo $_GET['id'] + 0; // forces an int conversion

Everyrthing coming out of _GET/_POST/_COOKIE is a string. That data wouldn't be converted to a number unless you did something that forced it to be interpreted as one.

echo $_GET['id']; // echoes your big number
echo $_GET['id'] + 0; // forces an int conversion
世界和平 2024-12-31 15:55:24

这应该可以完成工作。

echo (string) $_GET['id'];

This should get the job done.

echo (string) $_GET['id'];
掌心的温暖 2024-12-31 15:55:24

硬着头皮安装 64 位 - 无论如何,这就是您服务器上的内容

bite the bullet and install 64bit - it's what's on your server anyway

阳光下慵懒的猫 2024-12-31 15:55:24

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

http://some.com?id=i1707541557936130

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

$id = (string) number_format($_GET['id']);
echo $id;

If the current solutions are not working you can append a string character to the integer such as

http://some.com?id=i1707541557936130

Additionally, if it is an issue of how the float is displayed you can use number_format().

$id = (string) number_format($_GET['id']);
echo $id;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文