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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于WDM的专用USB设备的驱动程序开发[通俗易懂]

    基于WDM的专用USB设备的驱动程序开发[通俗易懂]1引言目前对于诸如USB鼠标、键盘等这样的计算机标准外设,Windows系统已经提供了标准的驱动程序,用户无需再进行任何开发工作。而开发专用USB设备,需要开发专用的驱动程序。Windows2000/XP操作系统不允许用户程序直接访问硬件设备。为了实现对硬件设备的访问和控制,必须通过操作系统所认可的驱动程序对硬件设备实现间接访问和控制。驱动程序通常被认为是操作系统的组成部分,所以,开发驱动程序有严

    2022年8月30日
    8
  • 一码中_amp是什么意思

    一码中_amp是什么意思每日一码将每天看到的优秀的代码或者特别的实现,记录下来a&b赋值问题_2019218_Q&Aa.x//这时a.x的值是多少?b.x//这时b.x的值是多少

    2022年8月2日
    6
  • UVA1455 – Kingdom(并查集 + 线段树)

    UVA1455 – Kingdom(并查集 + 线段树)

    2021年12月14日
    51
  • origin同时画多个图_origin图形重叠

    origin同时画多个图_origin图形重叠http://www.xici.net/d116347704.htm这个文章叙述的不错

    2022年9月21日
    6
  • 软件测试工作流程概括与总结[通俗易懂]

    软件测试工作流程概括与总结[通俗易懂]最近在为面试新工作做准备,所以想想整理一下软件测试的基本工作流程,大致梳理一遍,这样也便于自己在面试过程中可以沉着的面对面试管的测试工作如何进行的问题。首先,作为测试人员需要学习并了解业务,分析需求点为什么测试人员要参加需求分析?也就是进行测试需求分析的目的是什么?第一、把用户需求转化为功能需求:1)对测试范围进度量2)对处理分支进行度量3)对需求业务的场景进行度量…

    2022年6月7日
    37
  • Oracle19c安装教程及PLSQL配置常见错误解决办法

    Oracle19c安装教程及PLSQL配置常见错误解决办法本人电脑上也装了不少比较难以安装的程序,而且也亲身破解了一些软件,自己以前也安装过MySQL和DB2,原以为Oracle也差不多,直到我亲身经历了,我才知道什么是痛苦。帅帅本人在经历了长时间的折磨之后终于把Oracle安装完毕,可谓被折磨得一塌糊涂,暗无天日。或许这也是程序员的快乐之一吧(ง•_•)ง目录&下面是Oracle的一些安装步骤及安装过程中常见错误的修正…

    2022年5月20日
    478

发表回复

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

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