2021-12-06工作问题学习记录

之前,项目中有使用到PHP的hexdec(string $hex_string),这一内置函数,需求是将十六进制数转换为十进制数。后来在生产环境发现,传入的参数$hex_string(需要进行转换的十六进制的字符串),可能存在一些特殊情况,比如:正常的传参为如下形式:'eeaac32',而在生产环境中,可能传入值的情况为'[eeaac32'、'eeaac32]'、'[eeaac32]',诸如这样的非标准形式,后来就是紧急对这样的传参进行对这些'['、']'符号的去除,然而,后续测试同学发现,就是不补充针对'['、']'这些符号的过滤处理模块,之前的功能也能正常进行。于是,排查了一下原因,就去翻查了一下hexdec()这个函数的说明使用手册,发现PHP官方网站中关于这个函数有这么一段说明描述:

" hexdec() 会忽略它遇到的任意非十六进制的字符"

是没有被我所学习了解到的,特此,进行一下学习记录。

官方网站中给出的例子如下:

<?php
    // both print "int(238)"
    var_dump(hexdec("See"));
    var_dump(hexdec("ee"));
    

    // print "int(10)"
    var_dump(hexdec("that")); 
    // print "int(160)"
    var_dump(hexdec("a0")); 
?>

以上代码片段已做验证。

我这边自己也拿工作项目中的案例进行了一下测试验证,代码片段如下:

<?php
    // both print "int(250260530)"
    var_dump(hexdec('[eeaac32'));
    var_dump(hexdec('eeaac32]'));
    var_dump(hexdec('[eeaac32]')); 
    var_dump(hexdec('eeaac32')); 
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值