在php5中,如何阻止GET(错误地)转换为数字?
关于 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
来自 _GET/_POST/_COOKIE 的所有内容都是一个字符串。该数据不会转换为数字,除非您执行了强制将其解释为数字的操作。
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.
这应该可以完成工作。
This should get the job done.
硬着头皮安装 64 位 - 无论如何,这就是您服务器上的内容
bite the bullet and install 64bit - it's what's on your server anyway
如果当前的解决方案不起作用,您可以将字符串字符附加到整数,例如
此外,如果是浮动显示方式的问题,您可以使用 number_format()。
If the current solutions are not working you can append a string character to the integer such as
Additionally, if it is an issue of how the float is displayed you can use number_format().