在數據傳輸、加密存儲或底層協議開發中,經常需要將字符串與二進制數據相互轉換。本文提供兩個高性能的 PHP 函數,支援 UTF-8 多字節字符,適合中文等多語言場景。
<?php
header("Content-type: text/html; charset=utf-8");
/**
* 字符串轉二進制
* @param string $str 輸入字符串
* @return string 空格分隔的二進制串
*/
function StrToBin($str) {
// 1. 將字符串拆分為單字符數組(支援 UTF-8)
$arr = preg_split('/(?
原理解析
- StrToBin:利用
preg_split('/(? 正確切分 UTF-8 字符,再經 unpack('H*') 取十六進制,最後 base_convert(..., 16, 2) 得到二進制。
- BinToStr:反向操作,
base_convert(..., 2, 16) 轉十六進制,pack("H*") 還原字節序列。
- 空格分隔:每字符二進制之間用空格隔開,便於存儲、傳輸與調試。
應用場景
這組函數輕量、無依賴,直接放入工具類即可復用,解決 PHP 原生缺乏直觀二進制轉換函數的痛點。