php字符串与byte字节数组转化类示例

向右看齐 2022-08-18 02:58 77阅读 0赞

php字符串与byte字节数组转化类示例

<? 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类型的数据

*/

  1. public static function toStr($bytes) \{
  2. $str = '';
  3. foreach($bytes as $ch) \{
  4. $str .= chr($ch);
  5. \}
  6. return $str;
  7. \}

/**

* 转 换一个int为 byte 数组

* @param $byt 目标 byte 数组

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

*

*/

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

/**

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

* @param $bytes 字节数组

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

* @return 一个Integer类型的数据

*/

  1. public static function bytesToInteger($bytes, $position) \{
  2. $val = 0;
  3. $val = $bytes\[$position + 3\] & 0xff;
  4. $val <<= 8;
  5. $val |= $bytes\[$position + 2\] & 0xff;
  6. $val <<= 8;
  7. $val |= $bytes\[$position + 1\] & 0xff;
  8. $val <<= 8;
  9. $val |= $bytes\[$position\] & 0xff;
  10. return $val;
  11. \}

/**

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

* @param $byt 目标 byte 数组

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

*

*/

  1. public static function shortToBytes($val) \{
  2. $byt = array();
  3. $byt\[0\] = ($val & 0xff);
  4. $byt\[1\] = ($val >> 8 & 0xff);
  5. return $byt;
  6. \}

/**

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

* @param $bytes 字节数组

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

* @return 一个Short类型的数据

*/

  1. public static function bytesToShort($bytes, $position) \{
  2. $val = 0;
  3. $val = $bytes\[$position + 1\] & 0xFF;
  4. $val = $val << 8;
  5. $val |= $bytes\[$position\] & 0xFF;
  6. return $val;
  7. \}

}
?>

发表评论

表情:
评论列表 (有 0 条评论,77人围观)

还没有评论,来说两句吧...

相关阅读