·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分购买✅卡密充值📒收藏夹🎖️众筹悬赏👽聊天室
返回列表 发布新帖

function dintval函数存在BUG:

201 2
发表于 2022-5-27 10:04:15 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
function dintval函数存在BUG:
就是这个使用量非常大的函数: https://zhidao.baidu.com/question/554863766.html

后面那里0xffffffff里面判断0到9个数是否一致就返回原始参数, 如果传入的参数是前面带0的:

比如: dintval('04500000000')
返回的也会是字符串'04500000000', 在自身的mysql里面查询是没有问题的, 但是如果是要传输给别人ajax或者输出给html时,
然后后续又有判断 '4500000000' == '04500000000', 就会判断成不相等, 实际是相等的
我要说一句 收起回复
创宇盾启航版免费网站防御网站加速服务

评论2

拾光Lv.8 发表于 2022-5-27 10:04:52 | 查看全部
我知道后面为啥要用strspn去判断数字, 是因为非64位系统或PHP小于7.1时, php只能处理小于42亿的数字,
因为如果系统整体不支持64位的话, 只修复intval这一个函数也是没有意义的, time()等一大堆基础函数里面的数字如果大于21亿的话执行后同样也会乱码不正确的
我要说一句 收起回复
TyCodingLv.8 发表于 2022-5-27 10:05:40 | 查看全部
网上教程说要支持大于21亿的int数字只要64位系统和安装64位的PHP说法也是错的,
就算系统和PHP都是64的, PHP版本如果小于7的话也是不行的, 只有php大于7以上才是完美支持了大于21亿的int,
所以在本身就不支持大于21亿的前提下只去修复dintval这一个也是没有意义的, 反而还容易导致出现1楼的BUG
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.222.118.105,GMT+8, 2024-9-19 08:53 , Processed in 0.708295 second(s), 92 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表