站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        php轉(zhuǎn)換為二進(jìn)制的實(shí)現(xiàn)方法

        php轉(zhuǎn)換為二進(jìn)制的實(shí)現(xiàn)方法:首先創(chuàng)建一個(gè)PHP示例文件;然后定義一個(gè)StrToBin方法;接著通過unpack方法解析字符串;最后通過“base_convert”函數(shù)轉(zhuǎn)換為二進(jìn)制即可。

        php轉(zhuǎn)換為二進(jìn)制的實(shí)現(xiàn)方法

        推薦:《PHP視頻教程》

        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)識別 // 結(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('陳');

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲精品麻豆av| 国产精品亚洲成在人线| 久久亚洲精精品中文字幕| 99久久国产热无码精品免费久久久久 | 国产欧美精品一区二区三区四区| 国产成人亚洲精品青草天美| 亚洲精品无码久久不卡| 91精品国产91久久久久久蜜臀| 久久精品国产网红主播| 亚洲精品无码专区久久同性男| 国产高清国内精品福利99久久| HEYZO无码综合国产精品| 亚洲国产精品无码久久一线| 热久久国产欧美一区二区精品| 国产在线观看一区精品| 69堂午夜精品视频在线| 99re66热这里只有精品| 精品国产福利一区二区| 亚洲av永久无码精品古装片| 无码国产亚洲日韩国精品视频一区二区三区 | 亚洲韩精品欧美一区二区三区| 精品国产呦系列在线观看免费| 午夜精品美女自拍福到在线| 99精品免费视品| 国内精品久久人妻互换| 国内揄拍高清国内精品对白| 国产欧美日韩精品丝袜高跟鞋| 久久精品人成免费| 久久久久成人精品无码中文字幕| 亚洲国产精品高清久久久| 中文字幕亚洲精品无码| 一级A毛片免费观看久久精品| 亚洲精品成人网久久久久久 | 国产精品va在线观看无码| 亚洲国产精品自在线一区二区| 国产精品一区二区久久精品| 99精品视频在线观看re| 国产精品视频第一页| 久久精品国产亚洲欧美| 欧美亚洲精品在线| 97精品伊人久久久大香线蕉|