国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
如何使用php實現(xiàn)asc、binary以及hex之間的互換
轉(zhuǎn)貼 - 如何使用php實現(xiàn)asc、binary以及hex之間的互換

廢話少說,我們直接進入代碼:

function asc2bin($str) {
$text_array = explode("\r\n", chunk_split($str, 1));
for ($n = 0; $n < count($text_array) - 1; $n++) {
$newstring .= substr("0000".base_convert(ord($text_array[$n]), 10, 2), -8);
}
$newstring = chunk_split($newstring, 8, " ");
return $newstring;
}

function bin2asc($str) {
$str = str_replace(" ", "", $str);
$text_array = explode("\r\n", chunk_split($str, 8));
for ($n = 0; $n < count($text_array) - 1; $n++) {
$newstring .= chr(base_convert($text_array[$n], 2, 10));
}
return $newstring;
}

以上兩個函數(shù)是實現(xiàn)asc和binary之間的幻想轉(zhuǎn)化的。

重點說幾個函數(shù)吧。

其中的chunk_split函數(shù)的原型如下:

string chunk_split(string string, int [chunklen] , string [end]);

函數(shù)描述:

本函數(shù)將字符串變成小段供其它函數(shù)使用。例如,base64_encode。內(nèi)定是參數(shù) chunklen (76 個字符) 每隔 76 個字符插入 end ("\r\n")。傳回新字符串而不更動原字串。

舉個簡單的例子:

<?

$string=chunk_split("abcdefghijklmnopqrstuvwxyz",5);
echo $string;

?>

將會顯示如下格式的字符串:
abcde fghij klmno pqrst uvwxy z



還有一個需要注意的是base_convert函數(shù)。它是一個數(shù)學(xué)函數(shù)。函數(shù)描述如下:

string base_convert(string number, int frombase, int tobase);

本函式將數(shù)字字串 number 從以 frombase 進位轉(zhuǎn)換到以 tobase 進位。本式能夠處理的由以二進位到以三十六進位之間的進位方式。在十進位之前都是以數(shù)字表示,而在超過十進位之后就用英文字母表示。例如十六進位個位數(shù)依序為 123456789abcdef,10 的順序是第十七個,這時才進一位。而三十六進位 a 是第十個、b 為第十一個、z 為第三十六個、10 是第三十七個,這時才進位。

弄懂了上面兩個函數(shù),我給出的轉(zhuǎn)換函數(shù)相信大家也能看明白了。。。

我們接著看:

function asc2hex($str) {
return chunk_split(bin2hex($str), 2, " ");
}

function hex2asc($str) {
$str = str_replace(" ", "", $str);
for ($n=0; $n<strlen($str); $n+=2) {
$newstring .= pack("C", hexdec(substr($str, $n, 2)));
}

return $newstring;
}

以上實現(xiàn)了asc到十六進制之間的轉(zhuǎn)換。第一個函數(shù)很簡單,我就不多說了。第二個函數(shù)需要注意下面2個函數(shù):

string str_replace(string needle, string str, string haystack);

這個函數(shù)是將haystack字符串中的needle子串替換成str字符串。

pack函數(shù)在perl時代就是一個非常有用的函數(shù),在php里雖然沒有那么重要但是也不可小視的。
string pack(string format, mixed [args]...);

把一個列表或數(shù)組以在實際機器存貯格式或C等編程語言使用的格式轉(zhuǎn)化(包裝)到一個簡單變量中。

具體用法大家可以參考perl或者php中的函數(shù)說明。


再來:


function binary2hex($str) {
$str = str_replace(" ", "", $str);
$text_array = explode("\r\n", chunk_split($str, 8));
for ($n = 0; $n < count($text_array) - 1; $n++) {
$newstring .= base_convert($text_array[$n], 2, 16);
}
$newstring = chunk_split($newstring, 2, " ");
return $newstring;
}

function hex2binary($str) {
$str = str_replace(" ", "", $str);
$text_array = explode("\r\n", chunk_split($str, 2));
for ($n = 0; $n < count($text_array) - 1; $n++) {
$newstring .= substr("0000".base_convert($text_array[$n], 16, 2), -8);
}
$newstring = chunk_split($newstring, 8, " ");
return $newstring;
}


上面兩個是對一六進制和二進制之間的轉(zhuǎn)換。大部分函數(shù)都講過了。很簡單。


看到這里,大家對php的柑橘而是什么呢?我想不只是強大可以形容吧。

需要完整代碼的可以發(fā)email到:sqlinject@hotmail.com。


謝謝大家對s8s8的支持!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
php入門(15)
php ASCII字符和十六進制數(shù)之間的相互轉(zhuǎn)化
string和byte[]的轉(zhuǎn)換 (C#)
Apache的加密算法和java自帶的加密算法
c++函數(shù)返回引用
C++提高:String 類實現(xiàn)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服