PHP中的chr函數是將ASCII碼轉換為對應字符的函數,而反過來,將字符轉換成ASCII碼則需要使用ord函數。
例如:
echo chr(65); // 輸出A echo ord('A'); // 輸出65
chr函數的參數可以是一個整數或一組整數(用逗號隔開),也可以轉換十六進制的數值。
下面是一個把十六進制的字符串轉換成相應ASCII字符的例子:
$str = "68656c6c6f20776f726c64"; $result = ""; for($i = 0; $i< strlen($str); $i += 2){ $result .= chr(hexdec(substr($str, $i, 2))); } echo $result; // 輸出hello world
除了使用chr函數,也可以使用pack函數。pack函數可以將整數、浮點數、字符等數據打包成二進制字符串。使用pack函數時,需要指定打包的格式。
下面是一個將ASCII字符轉換成二進制字符串的例子:
$char = 'A'; $binary = pack("C", ord($char)); // C表示將無符號整數按照1字節打包 echo $binary; // 輸出A的二進制表示:01000001
除了使用ord函數,也可以使用ordify庫,這個庫是專門用來將字符轉換為ASCII碼的。ordify庫支持多種字符編碼。
下面是一個使用ordify庫將中文字符轉換成ASCII碼的例子:
require_once 'path/to/ordify/autoload.php'; use function ordify\str_ord; $str = "你好世界"; echo str_ord($str); // 輸出22823 22909 19990 30028