您好,登錄后才能下訂單哦!
小編給大家分享一下php怎么實(shí)現(xiàn)轉(zhuǎn)化為二進(jìn)制字符串,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
php實(shí)現(xiàn)字符串轉(zhuǎn)化為二進(jìn)制字符串的方法:首先創(chuàng)建一個(gè)PHP示例文件;然后通過“function StrToBin($str){...}”方法將字符串轉(zhuǎn)換成二進(jìn)制即可。
PHP 字符串 與 二進(jìn)制相互轉(zhuǎn)換
在網(wǎng)絡(luò)上查找到了字符串與二進(jìn)制相互轉(zhuǎn)換的方法(相關(guān)問題描述和問題在下列代碼中,請耐心查看,謝謝):
/** * 將字符串轉(zhuǎn)換成二進(jìn)制 * @param type $str * @return type * php 中顯示的字符串是多少進(jìn)制的?? * 例如:$str = '你好'; // 這邊的 '你好' 是什么進(jìn)制數(shù)據(jù)(我知道他是字符串?。?? */ function StrToBin($str){ //1.列出每個(gè)字符 // 這邊的分割正則也不理解 // (?<!^) 后瞻消極斷言 // (?!$) 前瞻消極斷言 // 看意思好像說的是:不以^開頭(但是這邊 ^ 又沒有被轉(zhuǎn)義...),不以 $ 結(jié)尾(同上) // 然后得到的記過就是字符串一個(gè)個(gè)被分割成了數(shù)組(郁悶) // 求解釋 $arr = preg_split('/(?<!^)(?!$)/u', $str); //2.unpack字符 foreach($arr as &$v){ /** * unpack:將二進(jìn)制字符串解包(英語原文:Unpack data from binary string) * H: 英語描述原文:Hex string, high nibble first * 這段代碼做了什么?? */ $temp = unpack('H*', $v); // 這邊被解析出來的字符串為什么是 16進(jìn)制的?? $v = base_convert($temp[1], 16, 2); unset($temp); } return join(' ',$arr); } /** * 講二進(jìn)制轉(zhuǎn)換成字符串 * @param type $str * @return type */ function BinToStr($str){ $arr = explode(' ', $str); foreach($arr as &$v){ // 他做了什么?? $v = pack("H".strlen(base_convert($v, 2, 16)), base_convert($v, 2, 16)); } return join('', $arr); } echo StrToBin("php二次開發(fā):www.php2.cc");; echo '<br/>'; echo BinToStr("1110000 1101000 1110000 111001001011101010001100 111001101010110010100001 111001011011110010000000 111001011000111110010001 111011111011110010011010 1110111 1110111 1110111 101110 1110000 1101000 1110000 110010 101110 1100011 1100011");
上述的函數(shù)是怎樣實(shí)現(xiàn)二進(jìn)制和字符串的相互轉(zhuǎn)換的??
-------分隔符-------
關(guān)于 pack 和 unpack 我已經(jīng)清楚了!順便分享下:
就用這邊例子,說說我理解到的部分:
pack用法:
// 二進(jìn)制數(shù)字 => 二進(jìn)制字符串 $bin_number = '這邊是二進(jìn)制數(shù)字'; $hex = bin2hex($bin_number ); // 由于指定了 H(16進(jìn)制,高位在前),所以第二個(gè)參數(shù)需要使 16 進(jìn)制字字符串 // strlen($hex) 指定打包多少個(gè) 16 進(jìn)制字符串 // 也可以使用 * 來自動(dòng)識(shí)別 // 結(jié)果就是:二進(jìn)制字符串了 $bin_str = pack('H' . strlen($hex) , $hex); <=> $dec = bindec($bin_number); $hex = dechex($dec); $bin_str = hex2bin($hex); unpack 用法: // 轉(zhuǎn)換作用:2進(jìn)制字符串 => 16進(jìn)制字符串 $str = unpack('H*' , '陳'); <=> $str = bin2hex('陳');
以上是“php怎么實(shí)現(xiàn)轉(zhuǎn)化為二進(jìn)制字符串”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。