|
php讀寫二進制文件可以使用pack和unpack函數(shù)。
今天要處理一個二進制文件的問題,所以需要用一下,特意了解一下pack的用法,unpack用法與此類似。
簡單來說,pack函數(shù)就是給一個目標(biāo)格式,和相應(yīng)的參數(shù),就可以返回二進制數(shù)據(jù)了。
下面舉例加以說明,對于四個整數(shù):
pack("L4", 0,1,2,3)pack("LLLL", 0,1,2,3)pack("L", 0).pack("L", 1).pack("L", 2).pack("L", 3)
上面的處理結(jié)果是一樣的,也就是說,format是描述后面的數(shù)據(jù)的格式。
至于具體format可以用什么,看看format characters就知道了。
比如一個30字符的 pack("a30", "http://www.jb51.NET") ,就是這個意思,很簡單
pack函數(shù)的官方聲明如下:
引用pack(php 3, php 4, php 5)pack -- Pack data into binary stringDescriptionstring pack ( string format [, mixed args [, mixed ...]] )Pack given arguments into binary string according to format. Returns binary string containing data. The idea to this function was taken from Perl and all formatting codes work the same as there, however, there are some formatting codes that are missing such as Perl's "u" format code. The format string consists of format codes followed by an optional repeater argument. The repeater argument can be either an integer value or * for repeating to the end of the input data. For a, A, h, H the repeat count specifies how many characters of one data argument are taken, for @ it is the absolute position where to put the next data, for everything else the repeat count specifies how many data arguments are consumed and packed into the resulting binary string. Currently implemented are表格 1. pack() format charactersCode Description a NUL-padded string A SPACE-padded string h Hex string, low nibble first H Hex string, high nibble first c signed char C unsigned char s signed short (always 16 bit, machine byte order) S unsigned short (always 16 bit, machine byte order) n unsigned short (always 16 bit, big endian byte order) v unsigned short (always 16 bit, little endian byte order) i signed integer (machine dependent size and byte order) I unsigned integer (machine dependent size and byte order) l signed long (always 32 bit, machine byte order) L unsigned long (always 32 bit, machine byte order) N unsigned long (always 32 bit, big endian byte order) V unsigned long (always 32 bit, little endian byte order) f float (machine dependent size and representation) d double (machine dependent size and representation) x NUL byte X Back up one byte @ NUL-fill to absolute position
看累了英文,下面來看看對應(yīng)的中文解釋:
引用pack()函數(shù)的作用是:將數(shù)據(jù)壓縮成一個二進制字符串。a - NUL-padded string a - NUL- 字符串填滿[padded string] A - SPACE-padded string A - SPACE- 字符串填滿[padded string] h - Hex string, low nibble first h 主站蜘蛛池模板: 最新国产精品视频免费看 | 天天澡天天碰天天狠伊人五月 | 手机在线观看亚洲国产精品 | 亚洲另类激情专区小说婷婷久 | 在线国产福利 | 精品午夜久久网成年网 | 精品国产一区二区三区四 | 欧美日本视频在线观看 | 国产免费播放一区二区三区 | 五月天色视频 | 99国产精品免费视频 | 69视频免费在线观看 | 小说区亚洲区 | 亚洲欧美黄 | 婷婷激情五月综合 | 国产成人深夜福利短视频99 | 亚洲综合偷自成人网第页色 | 国产91亚洲精品 | 一级爱做片免费观看久久 | 香蕉免费看一区二区三区 | 91啦视频在线 | 99精品久久精品一区二区 | 4hu四虎 | 欧洲激情乱子伦 | 国产精品亚洲二区在线 | 性视频一区 | 九一国产精品视频 | 五月婷婷丁香色 | 国内不卡一二三四区 | 欧美成人性色生活片天天看 | 国产视频合集 | 91嫩草国产线免费观看 | 日本www视频在线观看 | 午夜视频免费看 | 欧美成人午夜视频免看 | 国产自产一c区 | 91在线免费观看网站 | 五月婷婷丁香 | 国产精品社区在线观看 | 日本欧美强乱视频在线 | 欧美午夜性 |