php 字符串與二進(jìn)制字符串的轉(zhuǎn)換pack() unpack()

變量里可以存儲(chǔ)二進(jìn)制數(shù)

<?php  
header("Content-type:text/html;charset=utf-8");  
/** 
* 將字符串轉(zhuǎn)換成二進(jìn)制 
* @param type $str 
* @return type 
*/  
function StrToBin($str){  
    //1.列出每個(gè)字符  
    $arr = preg_split('/(?<!^)(?!$)/u', $str);  
    //2.unpack字符  
    foreach($arr as &$v){  
        $temp = unpack('H*', $v);   
        $v = base_convert($temp[1], 16, 2);  
        unset($temp);  
    }  
    return join(' ',$arr);  
    //return $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");  
?>  

PHP處理二進(jìn)制數(shù)據(jù)需要用到pack()和unpack()听怕。

pack()用來將數(shù)據(jù)轉(zhuǎn)成二進(jìn)制數(shù)據(jù),使用方法如下:

pack(format,args+)
format 必需岖妄。規(guī)定在包裝數(shù)據(jù)時(shí)所使用的格式。
args+ 可選。規(guī)定被包裝的一個(gè)或多個(gè)參數(shù)。

pack(“LL”, 0,1);
pack(“C”, a);

unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解包鸥诽。,它接受2個(gè)參數(shù)晰甚,使用方法如下:

unpack(format,data)
format 必需衙传。規(guī)定在解包數(shù)據(jù)時(shí)所使用的格式决帖。
data 可選厕九。規(guī)定被解包的二進(jìn)制數(shù)據(jù)。

$arr = unpack(“Chead”, $binstream); //讀取第1個(gè)字節(jié)
$arr = unpack(“Chead/C3string/C4number”, $binstream); //讀取8個(gè)字節(jié)地回,用斜杠可以分隔

pack()和unpack()函數(shù)的第一個(gè)參數(shù)表如下

a:NULL填充的字節(jié)串
A:空格填充的字節(jié)串
h:十六進(jìn)制數(shù)扁远,低四位字節(jié)優(yōu)先
H:十六進(jìn)制數(shù)俊鱼,高四位字節(jié)優(yōu)先
c:有符號(hào)字符
C:無符號(hào)字符
s:有符號(hào)短整型(總是16位,機(jī)器字節(jié)序)
S:無符號(hào)短整型(總是16位畅买,機(jī)器字節(jié)序)
n:無符號(hào)短整型(總是16位并闲,大尾字節(jié)序)
v:無符號(hào)短整型(總是16位,小尾字節(jié)序)
I:有符號(hào)整型(機(jī)器相關(guān)大小和字節(jié)序)
I:無符號(hào)整型(機(jī)器相關(guān)大小和字節(jié)序)
l:有符號(hào)長(zhǎng)整型(總是32位谷羞,機(jī)器字節(jié)序)
L:無符號(hào)長(zhǎng)整型(總是32位帝火,機(jī)器字節(jié)序)
N:無符號(hào)長(zhǎng)整型(總是32位,大尾字節(jié)序)
V:無符號(hào)長(zhǎng)整型(總是32位湃缎,小尾字節(jié)序)
f:浮點(diǎn)數(shù)(機(jī)器相關(guān)大小和表示)
d:雙精度數(shù)(機(jī)器相關(guān)大小和表示)
x:空字節(jié)
X:倒退一個(gè)字節(jié)
@:用NULL填充絕對(duì)位置

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末犀填,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嗓违,更是在濱河造成了極大的恐慌九巡,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹂季,死亡現(xiàn)場(chǎng)離奇詭異冕广,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)偿洁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門撒汉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涕滋,你說我怎么就攤上這事神凑。” “怎么了何吝?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵溉委,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我爱榕,道長(zhǎng)瓣喊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任黔酥,我火速辦了婚禮藻三,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跪者。我一直安慰自己棵帽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布渣玲。 她就那樣靜靜地躺著逗概,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忘衍。 梳的紋絲不亂的頭發(fā)上逾苫,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天卿城,我揣著相機(jī)與錄音,去河邊找鬼铅搓。 笑死瑟押,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的星掰。 我是一名探鬼主播多望,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼氢烘!你這毒婦竟也來了便斥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤威始,失蹤者是張志新(化名)和其女友劉穎枢纠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黎棠,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晋渺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脓斩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片木西。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖随静,靈堂內(nèi)的尸體忽然破棺而出八千,到底是詐尸還是另有隱情,我是刑警寧澤燎猛,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布恋捆,位于F島的核電站,受9級(jí)特大地震影響重绷,放射性物質(zhì)發(fā)生泄漏沸停。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一昭卓、第九天 我趴在偏房一處隱蔽的房頂上張望愤钾。 院中可真熱鬧,春花似錦候醒、人聲如沸能颁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伙菊。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間占业,已是汗流浹背绒怨。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來泰國打工纯赎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谦疾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓犬金,卻偏偏與公主長(zhǎng)得像念恍,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晚顷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容