五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 用php操作二進(jìn)制文件(有二進(jìn)制操作經(jīng)驗(yàn)的人進(jìn)來給偶解答一下下吧,謝謝丫)

用php操作二進(jìn)制文件(有二進(jìn)制操作經(jīng)驗(yàn)的人進(jìn)來給偶解答一下下吧,謝謝丫)

文章來源:365jz.com     點(diǎn)擊數(shù):1782    更新時間:2009-09-15 10:11   參與評論

二進(jìn)制對于php來說是一個很偏的東西,因?yàn)閜hp中對于二進(jìn)制的支持是非常有限的,今天在一個php群組里討論一個問題討論了一下午也沒討論出結(jié)果來,現(xiàn)在總結(jié)一下,不知道我想的對不對,因?yàn)楸緛磉€覺得自己挺理解的,后來討論多了,連二進(jìn)制是什么都糊涂了.

問題:群里有個朋友接受一個項(xiàng)目,以前是用java寫的,里面有很多對二進(jìn)制文件的操作,包括圖片作為二進(jìn)制存儲,然后在這個二進(jìn)制文件中加入一些用戶輸入的字符串的二進(jìn)制格式,就是把圖片和字符串組合到一個二進(jìn)制文件中,我們卡在了怎么把字符串寫入到二進(jìn)制文件中的問題這里.

 1 <?php
 2 $header_str="abc123";
 3 
 4 function asc2bin ($temp) { 
 5   $len = strlen($temp); 
 6   for ($i=0$i<$len$i++$data.=sprintf("%02x",ord(substr($temp,$i,1))); 
 7   return $data
 8 }
 9 
10 $aa = asc2bin($header_str);
11 
12 
13 $content_2=pack('H*', $aa);
14 
15 $handle = fopen ("aaaa.bin", "wb");
16 fwrite($handle, $content_2);
17 fclose($handle);
18 
19 ?>

下面是我的最終代碼,它將一個abc123的字符串作為二進(jìn)制流寫進(jìn)二進(jìn)制文件 aaaa.bin中,里面用到了pack函數(shù),這個函數(shù)可以將php的內(nèi)置類型轉(zhuǎn)換成二進(jìn)制格式,它和unpack配套,后者可以講二進(jìn)制轉(zhuǎn)換成php的內(nèi)置類型.

二者的用法如下:

Code

上面是用法,但是在我們的討論中遇到了問題,歸根結(jié)底就是說 二進(jìn)制文件有沒有可能在記事本里顯示成不是亂碼的形式呢?群上很多人說二進(jìn)制文件在記事本里查看就應(yīng)該是亂碼,我一開始也深信不移,所以對自己的程序也沒有了信心,因?yàn)槲疫@個二進(jìn)制文件雖然在高級文本處理工具里查看,十六進(jìn)制形式的確是正確的,可是在記事本中竟然不會顯示亂碼,而是顯示"abc123",我開始想我應(yīng)該搞錯了,我應(yīng)該把字符串直接寫進(jìn)二進(jìn)制文件中了,而不是寫的二進(jìn)制流.

現(xiàn)在我回來想了想,突然想到二進(jìn)制文件就一定是亂碼了么?英文字母就是以字節(jié)編碼的,一個英文字母占一字節(jié),8位,我把一個字符串的二進(jìn)制寫入一個二進(jìn)制文件后,在記事本中當(dāng)然會顯示文本啦,因?yàn)橛浭卤咀詣咏馕龆M(jìn)制,然后轉(zhuǎn)換成字符串的格式了,我覺得我上面的程序其實(shí)是正確的.

其實(shí)我也不敢確認(rèn),二進(jìn)制文件是個很復(fù)雜的概念,不同的二進(jìn)制文件有著不同的結(jié)構(gòu),對于二進(jìn)制的了解太少了,群上都沒有一個能說清楚二進(jìn)制文件到底是什么,怎么向二進(jìn)制文件寫入字符串就更別提了.

這里搞.NET的人多,大家應(yīng)該都對二進(jìn)制有概念吧,急問高手,我這樣寫二進(jìn)制文件對還是不對啊,不問代碼,而是字符串的二進(jìn)制形式寫到文件后,顯示的是亂碼還是字符串本身啊,望高手解答.

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答?。?點(diǎn)擊進(jìn)入論壇

發(fā)表評論 (1782人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號