php使用问题记录

本文记录了在PHP中遇到的两个问题:一是如何正确获取毫秒时间戳,尤其处理首位为0的情况;二是如何将待签名的UTF-8数据转换为字节流,以与Java的getBytesUtf8()和encryptionByteByMD5()方法进行对接。提供了相应的解决方法。
一、获取毫秒时间戳
            list($msec, $sec) = explode(' ', microtime());
            $time = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);

之前有使用过

            $time       = explode ( " ", microtime () );
            $time       = $time[1] . ($time[0] * 1000);
            $time2      = explode( ".", $time );
            $time       = $time2[0];

但是此方法在首位是0的时候最后的结果会缺少一位,导致时间比较失败

二、待签名数据以UTF-8的格式转字节流

与java对接时,java有使用方法getBytesUtf8(data)和encryptionByteByMD5(data)两种方法
getBytesUtf8(data)可以直接调用如下函数即可

        private function getByteUtf8($data)
        {
            // 待签名数据以UTF-8的格式转字节流
            $bytes = unpack("c*", $data);
            //$bytes为一个字节流数组,需要将其转为字符串
            $str = '';
            foreach ($bytes as $ch) {
                $str .= chr($ch);
            }
            return $str;
        }

encryptionByteByMD5(data)方法需要如下调用

getByteUtf8(md5($data,true))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值