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)
上一篇 2022年2月10日 下午4:00
下一篇 2022年2月10日 下午5:00


相关推荐

  • 01背包问题【回溯法求解】通俗易懂,适合小白

    01背包问题【回溯法求解】通俗易懂,适合小白本人此时还是一名研一的小菜鸡 刚学会了这个算法的基本概念 来总结一下 谁知道今后的我再看到这篇自己写的博客的时候会不会笑出来 哈哈哈哈哈哈哈哈 所以吗 错了的化大佬们评论指正就好了 还有系列文章动态规划法解 01 背包问题 分支限界法解 01 背包问题哈 需要的化以下是链接 动态规划法 https blog csdn net article details

    2026年3月26日
    2
  • javascript如何实现页面跳转_跳转页面的代码

    javascript如何实现页面跳转_跳转页面的代码JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能。下面我们来看一下如何使用JavaScript跳转页面。JavaScript中几种页面跳转的方法:window.location.href=’url’:比较常用的方法,直接跟指定要跳转的地方。window.history.back(-1);:参见的浏览器返回上一个已访问的页面,直到访…

    2022年8月12日
    8
  • CWPP(云工作负载保护平台)

    CWPP(云工作负载保护平台)CWPP 云工作负载保护平台 现代数据中心支持运行在物理设备 虚拟机 VM 容器以及私有云基础架构中的各种工作负载 并且几乎总是涉及一些在一个或多个公有云基础设施即服务 IaaS 提供商中运行的工作负载 云工作负载保护平台 CWPP 市场定义为基于主机的解决方案 主要满足现代混合数据中心架构中 服务器工作负载的保护要求 它为信息安全领导者提供了一种集成的方式 通过使用单个管理控制台和单一方式表达安全策略来保护这些工作负载 而不用考虑工作负载运行的位置 可以理解

    2026年3月17日
    2
  • linux 编译安装GCC4.9.3(完整版)「建议收藏」

    linux 编译安装GCC4.9.3(完整版)「建议收藏」第一步首先下载gcc源码包wgethttp://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2第二步将下载好的文件放在非root用户也有读权限的地方,例如/home/myuser或者/usr/gcc-build/下面第四步我会讲为什么要这么做.第三步解压文件,做一些准备工作tar

    2022年5月25日
    37
  • pycharm添加pip指令安装库的方法[通俗易懂]

    pycharm添加pip指令安装库的方法[通俗易懂]我们在cmd命令窗口通过pip指令安装的python第三方库,在使用pycharm的时候并不能直接使用,需要通过配置与python3.8的外部库相连接。1.file–>setting2.project–>ProjectInterpreter选择python.exe的路径,一般在python3.x文件夹下3.添加python.exe的路径如果没有类似python3.8/python.exe的选项,就点击右侧的设置按钮添加然后点击OK就会出现如下通过pip指令安装的所有第三方库,

    2022年8月25日
    9

发表回复

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

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