1. 程式人生 > >php字串與byte位元組陣列轉化類示例

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型別的資料 

*/

    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; 
    } 


?>

相關推薦

php字串byte位元組陣列轉化示例

<?php /** * byte陣列與字串轉化類 */class Bytes { /** * 轉換一個String字串為byte陣列 * @param $str 需要轉換的字串 * @param $bytes 目標byte陣列 * @author Zikie */  

mac字串byte互轉工具

#include <string> #include <iostream> using namespace std; class MAC_Convertor { public: static int ConvertXDigit2Number(

PHP 字串陣列間的相互轉化

PHP中陣列與字串經常有需要轉化的時候,在其他語言中可能會非常麻煩。但在php中,已經為我們提供了兩個方法來實現這一功能,它們的用法如下: 1.字串轉化為陣列:explode()方法 $label = "張三,李四,王五,趙六"; $labelArray =

包裝(Integer/Boolean等、字串基本資料型別轉化,-127-128自動裝箱入池)

為什麼要有包裝類? Object類可以接收所有引用資料型別。然而在Java中,資料型別分為基本資料型別和引用資料型別,那麼基本資料型別如何處理呢? 使用包裝類 :包裝類是將基本資料型別封裝到類中,因為Object無法接受基本資料型別,封裝成類後就可以用Object類來接收。 簡單定義一個in

位元組陣列轉化為十六進位制字串時 &0xff

我是資源的搬運工~~~ 關於這個位元組陣列轉化為十六進位制字串時 &0xff,看到很多次了,這裡整理一下網上的資料,記錄一下: byte 為什麼要&0xff byte 為什麼要 &0xff /** * 位元組陣列轉換成字串HEX表示 *

位元組陣列轉化為十六進位制字串時 &0xff

我是資源的搬運工~~~ 關於這個位元組陣列轉化為十六進位制字串時 &0xff,看到很多次了,這裡整理一下網上的資料,記錄一下: /** * 位元組陣列轉換成字串HEX表示 * * @param data 位元組陣列

android byte位元組陣列轉換十六進位制字串(物聯網開發總結)

想起前段時間的物聯網的外包開發,經常遇到通過wifi接受的資料,要通過轉換成十六進位制字串,或者最後又是十進位制資料。都是根據雙方的協議來開發的。那麼我傳送過去的資料也需要,經過特殊轉換成byte位元組發過去,硬體那邊收到不至於亂碼的資料。 1、硬體除錯發給android這

android byte位元組陣列轉換十六進位制字串

android讀到資料是byte位元組陣列,通過wifi接受的資料,要通過轉換成十六進位制字串,或者最後又是十進位制資料。都是根據雙方的協議來開發的。那麼我傳送過去的資料也需要,經過特殊轉換成byte位元組發過去,硬體那邊收到不至於亂碼的資料。 十六進位制字串是這樣的:

byte[]位元組陣列轉換為二、八、十、十六進位制字串

【前言】java中很多時候需要將byte[]轉為各種進位制的字串顯示,從2,8,10,16到比較高階的base64(編碼),至於什麼時候需要這樣,當你遇到這樣的問題就知道了。【程式碼】進位制轉換比較簡單,直接上程式碼,編碼轉換見其他文章。例如這個package com.uik

C#: 字串string和位元組陣列byte[]的轉換

string轉byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]轉string: string str = System.Text.Encoding.Default.GetStri

JavaC#通過Byte[]位元組陣列實現訊息傳遞,跨語言資料序列化

支援型別: byte、short、int、long、float、double、boolean、char、String、byte[] Java程式碼 package com.itshidu.io; import java.nio.charset.Charset;

【C# 4】文字轉換。串列埠通訊中字串string和位元組陣列byte[]、ASCII的轉換

string轉byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]轉string:string str = System.Text.Encoding.Default.GetString ( byteArra

Java byte[] 位元組陣列 轉 二進位制 八進位制 十進位制 十六進位制字串

【前言】 java中很多時候需要將byte[]轉為各種進位制的字串顯示,從2,8,10,16到比較高階的base64(編碼), 至於什麼時候需要這樣,當你遇到這樣的問題就知道了。 【程式碼】 進位制轉換比較簡單,直接上程式碼,編碼轉換見其他文章。例如這個 package

Java 字串數值、陣列之間的轉化

一、Java 字串轉化為數值,數值轉化為字串 字元轉化為數值 int intValue = Integer.parseInt(intString); double doubleValue = Double.parseDouble(do

PHP字串位元組轉換示例

<?php /** * byte陣列與字串轉化類 */ class Bytes { /** * 轉換一個String字串為byte陣列 * @param $str 需要轉換的字串 * @param $bytes 目標byte陣列 * @author Zikie *

Json字串實體集轉換工具——SpringBootQuickStart

開始更新SpringBoot2.x 快速入門系列 本次分享一個常用的工具類,實體集與字串互相轉換的工具類,也就是Json字串的序列化與反序列化 Demo 下載: https://github.com/wangyushuai/springboot-quick-start 歡迎大

遊戲中tcp訊息使用byte位元組陣列傳輸

    通訊訊息不像是web那樣直接使用文字,比較多的形式使用位元組byte進行傳輸,形如下面的形式         0,1, 0,2 ,0,0,0,8, 0,0,1,1 ,0,0,0,3     根據客戶端與服務端定義的協議,去讀取byte陣列,     比如定好訊息格式為

Java 字串byte之間的相互轉換

寫在前面 你是否跟我一樣,在一些需要加密的程式碼裡看見需要把字串轉換為位元組的場景,例如MD5加密。而你每次看到像我以前一樣,自動地略過(反正別人都寫好了,我用就是了)。如果是的話,不要再逃避了,下面跟我一起來了解一下字串與byte之間轉換的原理 正文

string byte[] 的相互轉化

 1、String 到 byte[]String str = new String("hello world");byte[] by = str.getBytes();2、byte[] 到StringString str = new String("hello world")

C#字串數值之間的轉化

1、十進位制字串轉化為十進位制數        Convert.ToInt32(str);      要確保str是十進位制字元 2、十進位制數轉化字串       變數名後面直接加  .ToStri