PHP編寫(xiě)程序?qū)崿F(xiàn)16進(jìn)制轉(zhuǎn)換并反向輸出字符串
在編程中,經(jīng)常會(huì)遇到需要將字符串轉(zhuǎn)換為16進(jìn)制的情況,或者需要將16進(jìn)制數(shù)轉(zhuǎn)換為字符串。今天我們將介紹如何使用PHP編寫(xiě)程序?qū)崿F(xiàn)將字符串轉(zhuǎn)換為16進(jìn)制,并且反向輸出字符串的過(guò)程。
1. 字符串轉(zhuǎn)換為16進(jìn)制
首先,我們需要編寫(xiě)一個(gè)函數(shù)來(lái)實(shí)現(xiàn)將字符串轉(zhuǎn)換為16進(jìn)制的功能。下面是PHP代碼示例:
function strToHex($string){ $hex = ''; for ($i=0; $i < strlen($string); $i++){ $hex .= dechex(ord($string[$i])); } return $hex; } // 測(cè)試 $str = "Hello, World!"; $hex = strToHex($str); echo "字符串轉(zhuǎn)換為16進(jìn)制:".$hex;
登錄后復(fù)制
在上面的代碼中,strToHex
函數(shù)接受一個(gè)字符串作為參數(shù),然后使用ord
函數(shù)將每個(gè)字符轉(zhuǎn)換為ASCII值,再使用dechex
函數(shù)將ASCII值轉(zhuǎn)換為16進(jìn)制表示。最后將所有的16進(jìn)制字符串拼接起來(lái)輸出。
2. 16進(jìn)制轉(zhuǎn)換為字符串
接下來(lái),我們需要編寫(xiě)一個(gè)函數(shù)來(lái)實(shí)現(xiàn)將16進(jìn)制轉(zhuǎn)換為字符串的功能。代碼如下:
function hexToStr($hex){ $string = ''; for ($i=0; $i < strlen($hex)-1; $i+=2){ $string .= chr(hexdec($hex[$i].$hex[$i+1])); } return $string; } // 測(cè)試 $hex = "48656c6c6f2c20576f726c6421"; $str = hexToStr($hex); echo "16進(jìn)制轉(zhuǎn)換為字符串:".$str;
登錄后復(fù)制
在上面的代碼中,hexToStr
函數(shù)接受一個(gè)16進(jìn)制字符串作為參數(shù),然后將連續(xù)的兩個(gè)16進(jìn)制字符組合起來(lái)轉(zhuǎn)換為ASCII值,再使用chr
函數(shù)將ASCII值轉(zhuǎn)換為對(duì)應(yīng)的字符。拼接所有字符得到最終的字符串輸出。
3. 完整代碼示例
將上面的兩個(gè)函數(shù)整合到完整的PHP腳本中,如下所示:
function strToHex($string){ $hex = ''; for ($i=0; $i < strlen($string); $i++){ $hex .= dechex(ord($string[$i])); } return $hex; } function hexToStr($hex){ $string = ''; for ($i=0; $i < strlen($hex)-1; $i+=2){ $string .= chr(hexdec($hex[$i].$hex[$i+1])); } return $string; } // 測(cè)試 $str = "Hello, World!"; $hex = strToHex($str); echo "字符串轉(zhuǎn)換為16進(jìn)制:".$hex." "; $reversedStr = hexToStr($hex); echo "反向輸出字符串:".$reversedStr;
登錄后復(fù)制
通過(guò)以上的代碼示例,我們可以實(shí)現(xiàn)字符串和16進(jìn)制之間的相互轉(zhuǎn)換,并且能夠反向輸出字符串。這樣的功能在數(shù)據(jù)加密、數(shù)據(jù)傳輸?shù)确矫娼?jīng)常會(huì)用到,希望對(duì)你有所幫助。