PHP字符串与字节转换示例「建议收藏」

PHP字符串与字节转换示例

大家好,又见面了,我是全栈君。

 

<?php 

/** 

* byte数组与字符串转化类 

*/

class Bytes { 


/** 

* 转换一个String字符串为byte数组 

* @param $str 需要转换的字符串 

* @param $bytes 目标byte数组 

* @author Zikie 

*/
    public static function getBytes($string) { 
        $bytes = array(); 
        for($i = 0; $i < strlen($string); $i++){ 
             $bytes[] = ord($string[$i]); 
        } 
        return $bytes; 
    } 


/** 

* 将字节数组转化为String类型的数据 

* @param $bytes 字节数组 

* @param $str 目标字符串 

* @return 一个String类型的数据 

*/

    public static function toStr($bytes) { 
        $str = ''; 
        foreach($bytes as $ch) { 
            $str .= chr($ch); 
        } 

           return $str; 
    } 


/** 

* 转换一个int为byte数组 

* @param $byt 目标byte数组 

* @param $val 需要转换的字符串 

* 

*/

    public static function integerToBytes($val) { 
        $byt = array(); 
        $byt[0] = ($val & 0xff); 
        $byt[1] = ($val >> 8 & 0xff); 
        $byt[2] = ($val >> 16 & 0xff); 
        $byt[3] = ($val >> 24 & 0xff); 
        return $byt; 
    } 


/** 

* 从字节数组中指定的位置读取一个Integer类型的数据 

* @param $bytes 字节数组 

* @param $position 指定的开始位置 

* @return 一个Integer类型的数据 

*/

    public static function bytesToInteger($bytes, $position) { 
        $val = 0; 
        $val = $bytes[$position + 3] & 0xff; 
        $val <<= 8; 
        $val |= $bytes[$position + 2] & 0xff; 
        $val <<= 8; 
        $val |= $bytes[$position + 1] & 0xff; 
        $val <<= 8; 
        $val |= $bytes[$position] & 0xff; 
        return $val; 
    } 


/** 

* 转换一个shor字符串为byte数组 

* @param $byt 目标byte数组 

* @param $val 需要转换的字符串 

* 

*/

    public static function shortToBytes($val) { 
        $byt = array(); 
        $byt[0] = ($val & 0xff); 
        $byt[1] = ($val >> 8 & 0xff); 
        return $byt; 
    } 


/** 

* 从字节数组中指定的位置读取一个Short类型的数据。 

* @param $bytes 字节数组 

* @param $position 指定的开始位置 

* @return 一个Short类型的数据 

*/

    public static function bytesToShort($bytes, $position) { 
        $val = 0; 
        $val = $bytes[$position + 1] & 0xFF; 
        $val = $val << 8; 
        $val |= $bytes[$position] & 0xFF; 
        return $val; 
    } 

} 
?>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112099.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux futex_centos8 pip

    Linux futex_centos8 pipPriorityInheritance,优先级继承,是解决优先级反转的一种办法。一个经典的例子:A/B/C三个实时进程,优先级A>B>C。C持有a锁,而A等待a锁被挂起。原本C释放a锁之后,A进程就可以继续执行的,但是偏偏有个比C优先级高的B进程存在,导致C得不到运行,也就没法释放a锁,从而导致A进程一直挂起。从整体上看,进程B虽然比A优…

    2022年9月16日
    3
  • js正则匹配截取数字

    js正则匹配截取数字varreg=/[1-9][0-9]*/g;varreward=‘adad13dd1’console.log(reward.match(reg)[0])打印结果:131微信小程序开发交流qq群173683895承接微信小程序开发。扫码加微信。…

    2022年6月16日
    21
  • 解决NVIDIA显卡驱动 图形驱动程序安装失败 问题

    解决NVIDIA显卡驱动 图形驱动程序安装失败 问题本教程是在当你尝试一般的教程都无法解决问题的前提下使用,比如使用DDU工具卸载原显卡驱动后重新安装无效,找不到独立显卡的情况。退出火绒等杀毒软件win+R输入services.msc进入服务。将WindowsUpdata启动类型改为自动,并启动服务。win+R输入gpedit.msc进入本地策略编辑器。在计算机配置-模板管理-系统-设备安装-设备安装限制中双击图中第三个将其改为未配置或禁用重新安装显卡驱动即可…

    2022年5月6日
    842
  • 2015第14周一

    2015第14周一

    2021年9月4日
    46
  • Python if用法_if语句的用法例子

    Python if用法_if语句的用法例子if语句的语法及其实例等…..

    2022年9月26日
    2
  • JavaScript 检查是否是数字

    JavaScript 检查是否是数字

    2021年9月4日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号