Heim  >  Artikel  >  Backend-Entwicklung  >  php兑现java的byte数组转换

php兑现java的byte数组转换

WBOY
WBOYOriginal
2016-06-13 10:54:351122Durchsuche

php实现java的byte数组转换

由于工作需要,自己写的一个php实现java的byte数组转换的类。



/**
?* byte数组与字符串转化类
?* @author zikie
?* Created on 2011-7-15
?*/

class Bytes {
???
??? /**
???? * 转换一个String字符串为byte数组
???? * @param $str 需要转换的字符串
???? * @param $bytes 目标byte数组
???? * @author Zikie
???? */
????
??? public static function getBytes($str) {

??? ??? $len = strlen($str);
??? ??? $bytes = array();
?? ??? ??? for($i=0;$i?? ??? ??? ??? if(ord($str[$i]) >= 128){
?? ??? ??? ??? ??? $byte = ord($str[$i]) - 256;
?? ??? ??? ??? }else{
?? ??? ??? ??? ??? $byte = ord($str[$i]);
?? ??? ??? ??? }
??????? ??? $bytes[] =? $byte ;
??? ??? }
??? ??? 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 需要转换的字符串
???? * @author Zikie
???? */
???
??? 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 ??????? $val |= $bytes[$position + 2] & 0xff;
??????? $val ??????? $val |= $bytes[$position + 1] & 0xff;
??????? $val ??????? $val |= $bytes[$position] & 0xff;
??????? return $val;
??? }

??? /**
???? * 转换一个shor字符串为byte数组
???? * @param $byt 目标byte数组
???? * @param $val 需要转换的字符串
???? * @author Zikie
???? */
???
??? 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 ??????? $val |= $bytes[$position] & 0xFF;
??????? return $val;
??? }
???
}
?>

1 楼 tron.lu 2012-02-06  
3des 加密的时候用吗?

2 楼 heaven__18 2012-03-13  
在很多地方都能用的到。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP代码优化摘记<一>Nächster Artikel:php preg_replace 乱码有关问题