首页 > 语言 > PHP > 正文

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

2024-09-04 11:44:02
字体:
来源:转载
供稿:网友
  1. <?php  
  2.    
  3. /**  
  4.   
  5. * byte数组与字符串转化类  
  6.   
  7. */ 
  8.    
  9. class Bytes {  
  10.    
  11.      
  12. /**  
  13.       
  14. * 转换一个String字符串为byte数组  
  15.       
  16. * @param $str 需要转换的字符串  
  17.       
  18. * @param $bytes 目标byte数组  
  19.       
  20. * @author Zikie  
  21.       
  22. */ 
  23.     public static function getBytes($string) {  
  24.         $bytes = array();  
  25.         for($i = 0; $i < strlen($string); $i++){  
  26.              $bytes[] = ord($string[$i]);  
  27.         }  
  28.         return $bytes;  
  29.     }  
  30.    
  31.      
  32. /**  
  33.       
  34. * 将字节数组转化为String类型的数据  
  35.       
  36. * @param $bytes 字节数组  
  37.       
  38. * @param $str 目标字符串  
  39.       
  40. * @return 一个String类型的数据  
  41.       
  42. */ 
  43.    
  44.     public static function toStr($bytes) {  
  45.         $str = '';  
  46.         foreach($bytes as $ch) {  
  47.             $str .= chr($ch);  
  48.         }  
  49.    
  50.            return $str;  
  51.     }  
  52.    
  53.      
  54. /**  
  55.       
  56. * 转换一个int为byte数组  
  57.       
  58. * @param $byt 目标byte数组  
  59.       
  60. * @param $val 需要转换的字符串  
  61.       
  62.  
  63.       
  64. */ 
  65.    
  66.     public static function integerToBytes($val) {  
  67.         $byt = array();  
  68.         $byt[0] = ($val & 0xff);  
  69.         $byt[1] = ($val >> 8 & 0xff);  
  70.         $byt[2] = ($val >> 16 & 0xff);  
  71.         $byt[3] = ($val >> 24 & 0xff);  
  72.         return $byt;  
  73.     }  
  74.    
  75.      
  76. /**  
  77.       
  78. * 从字节数组中指定的位置读取一个Integer类型的数据  
  79.       
  80. * @param $bytes 字节数组  
  81.       
  82. * @param $position 指定的开始位置  
  83.       
  84. * @return 一个Integer类型的数据  
  85.       
  86. */ 
  87.    
  88.     public static function bytesToInteger($bytes$position) {  
  89.         $val = 0;  
  90.         $val = $bytes[$position + 3] & 0xff;  
  91.         $val <<= 8;  
  92.         $val |= $bytes[$position + 2] & 0xff;  
  93.         $val <<= 8;  
  94.         $val |= $bytes[$position + 1] & 0xff;  
  95.         $val <<= 8;  
  96.         $val |= $bytes[$position] & 0xff;  
  97.         return $val;  
  98.     }  
  99.    
  100.      
  101. /**  
  102.       
  103. * 转换一个shor字符串为byte数组  
  104.       
  105. * @param $byt 目标byte数组  
  106.       
  107. * @param $val 需要转换的字符串  
  108.       
  109.  
  110.       
  111. */ 
  112.    
  113.     public static function shortToBytes($val) {  
  114.         $byt = array();  
  115.         $byt[0] = ($val & 0xff);  
  116.         $byt[1] = ($val >> 8 & 0xff);  
  117.         return $byt;  
  118.     }  
  119.    
  120.      
  121. /**  
  122.       
  123. * 从字节数组中指定的位置读取一个Short类型的数据。  
  124.       
  125. * @param $bytes 字节数组  
  126.       
  127. * @param $position 指定的开始位置  
  128.       
  129. * @return 一个Short类型的数据  
  130.       
  131. */ 
  132.    
  133.     public static function bytesToShort($bytes$position) {  
  134.         $val = 0;  
  135.         $val = $bytes[$position + 1] & 0xFF;  
  136.         $val = $val << 8;  
  137.         $val |= $bytes[$position] & 0xFF;  
  138.         return $val;  
  139.     }  
  140.    
  141. }  
  142. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表