php十六進位怎麼轉換為字串函數

PHPz
發布: 2023-04-19 09:22:16
原創
1078 人瀏覽過

PHP作為一種伺服器端程式語言,具有豐富的函數庫,方便開發者快速進行開發。 PHP中提供了十六進位轉換為字串的函數,以下就來介紹這個函數。

PHP中十六進位轉換為字串的函數是hex2bin()。其作用是將十六進制數轉換成字串。

範例程式碼:

$string = hex2bin('546869732069732061207465737420737472696e67');
echo $string;
登入後複製

運行結果:

This is a test string

在上面的範例中,函數hex2bin()把十六進製字串'546869732069732061207465737420737472696e67'轉換成了字串'This is a test string'。可以看到,轉換後的字串和原來的十六進位字串是一樣的。

要注意的是,如果在呼叫hex2bin()函數時,傳入的十六進制數不是偶數位(即不能被2整除),PHP會自動在字串的末尾添加一個' 0'字符,這樣才能使其變成偶數位,然後再進行轉換。

範例程式碼:

$string = hex2bin('546869732069732061207465737420737472696e670');
echo $string;
登入後複製

運行結果:

This is a test string

此處的十六進位字串'546869732069732061207465737420737472696e670'字符'0'是PHP自動添加的。

除了hex2bin()函數,PHP還有以下兩個函數可以將十六進位數轉換成字串:

  1. pack()函數:
    pack ()函數可以用來把十六進位數轉換成字串。有別於hex2bin()函數,pack()函數可以依照不同的格式進行轉換。

格式說明:

H - 十六進位字串(高位元優先)
h - 十六進位字串(低位優先)
N -無符號長整數(網路位元組序)
n - 無符號短整數(網路字節序)
V - 無符號長整型(本機位元組序)
v - 無符號短整型(本地字節序)

範例程式碼:

$string = pack("H*", '546869732069732061207465737420737472696e67');
echo $string;
登入後複製

運行結果:

This is a test string

此程式碼與hex2bin( )函數的使用方法類似。不同之處在於,pack()函數可以根據不同的格式來解析十六進位字串。

  1. chr()函數:
    chr()函數用於將指定的ASCII碼值轉換成字元。因為一個位元組可以表示256個不同的字符,因此一個位元組的十六進位數對應一個ASCII碼值。因此,將十六進位字串拆分成兩個字元為一組,再將每一組轉換成其對應的ASCII碼值,就可以得到轉換後的字串。

範例程式碼:

$str = "546869732069732061207465737420737472696e67";
$len = strlen($str);
$res = "";
for ($i = 0; $i < $len; $i += 2) {
    $res .= chr(hexdec(substr($str, $i, 2)));
}
echo $res;
登入後複製

運行結果:

This is a test string

在上面的範例中,我們先將十六進製字串$str拆分成兩個字元為一組,因此$str的長度為偶數。透過for循環遍歷每一組,呼叫hexdec()函數將其轉換成十進制數,然後調用chr()函數將其轉換成對應的字符,將字符添加到$res字串中。

綜上所述,PHP提供了多種方法可以將十六進位數轉換成字串。開發者可以根據實際需求選擇合適的方法。

以上是php十六進位怎麼轉換為字串函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板