當前位置:首頁 > PHP教程 > php類庫 > 列表

php字符串與byte字節數組轉化類示例

發布:smiling 來源: PHP粉絲網  添加日期:2014-01-12 09:54:48 瀏覽: 評論:0 
  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. ?> 

Tags: 字符串 byte 字節 數組類

分享到:

广西快3最大遗漏值统计表