首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP字符與字節區別詳解及字符串字節轉換工具類

     編輯:PHP 綜合知識

核心概念

  • 字符:抽象實體,UTF-8下一個漢字佔3字符,GBK佔2字符
  • 字節:存儲/傳輸單位,8位二進制

數據庫字段定義 VARCHAR(10) 指字符數,UTF-8下最多存3-4個漢字。

Bytes 工具類

class Bytes {
    // 字符串轉字節數組
    public static function getBytes($string) {
        $bytes = array();
        for ($i = 0; $i < strlen($string); $i++) {
            $bytes[] = ord($string[$i]);
        }
        return $bytes;
    }

    // 字節數組轉字符串
    public static function toStr($bytes) {
        $str = '';
        foreach ($bytes as $ch) {
            $str .= chr($ch);
        }
        return $str;
    }

    // 整數轉4字節數組(大端序)
    public static function integerToBytes($val) {
        return array(
            ($val >> 24) & 0xff,
            ($val >> 16) & 0xff,
            ($val >> 8) & 0xff,
            $val & 0xff
        );
    }

    // 字節數組讀取整數
    public static function bytesToInteger($bytes, $position) {
        $val = 0;
        $val = ($bytes[$position] << 24) |
               ($bytes[$position+1] << 16) |
               ($bytes[$position+2] << 8) |
               ($bytes[$position+3] & 0xff);
        return $val;
    }
    // 同理提供 shortToBytes / bytesToShort
}

應用場景

網絡協議封裝、二進制文件解析、加密算法實現等需字節級操作的場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved