|
php讀寫二進制文件可以使用pack和unpack函數。
今天要處理一個二進制文件的問題,所以需要用一下,特意了解一下pack的用法,unpack用法與此類似。
簡單來說,pack函數就是給一個目標格式,和相應的參數,就可以返回二進制數據了。
下面舉例加以說明,對于四個整數:
pack("L4", 0,1,2,3)pack("LLLL", 0,1,2,3)pack("L", 0).pack("L", 1).pack("L", 2).pack("L", 3)
上面的處理結果是一樣的,也就是說,format是描述后面的數據的格式。
至于具體format可以用什么,看看format characters就知道了。
比如一個30字符的 pack("a30", "http://www.jb51.NET") ,就是這個意思,很簡單
pack函數的官方聲明如下:
引用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
看累了英文,下面來看看對應的中文解釋:
引用pack()函數的作用是:將數據壓縮成一個二進制字符串。a - NUL-padded string a - NUL- 字符串填滿[padded string] A - SPACE-padded string A - SPACE- 字符串填滿[padded string] h - Hex string, low nibble first h 主站蜘蛛池模板: 爆操大胸美女 | 成人精品综合免费视频 | GAY空少被体育生开菊 | 亚洲AV无码乱码A片无码蜜桃 | 国产亚洲精品久久孕妇呦呦你懂 | 免费网站在线观看国产v片 免费完整版观看 | 国产成人AV永久免费观看 | 亚洲中文久久久久久国产精品 | 俄罗斯15一16处交 | 快播av种子大全 | 不知火舞vs精子 | 亚洲 自拍 欧洲 视频二区 | 香港成人社区 | 亚洲综合免费视频 | 明星三级电影 | 特级做A爰片毛片免费看108 | 国产亚洲色婷婷久久精品99 | 国产 亚洲 另类 欧美 在线 | 歪歪爽蜜臀AV久久精品人人槡 | 一二三四在线观看韩国 | 91久久偷偷做嫩草影院免 | 亚洲色图19p | 精品视频在线观看视频免费视频 | 中文字幕免费在线视频 | 夜里18款禁用的免费B站动漫 | 久久影院毛片一区二区 | 成人影院久久久久久影院 | 帝王被大臣们调教高肉 | 国产精品XXXXX免费A片 | 被室友C哭调教双性 | 色婷婷狠狠97成为人免费 | G0GO人体大尺香蕉 | 灰原哀被啪漫画禁漫 | 久久国产欧美日韩精品免费 | 又亲又揉摸下面视频免费看 | 久久综合香蕉久久久久久久 | 亚洲蜜桃AV色情精品成人 | 亚洲三级大片 | 无码天堂亚洲内射精品课堂 | 白丝女仆被啪到深夜漫画 | 大稥焦伊人一本dao 大香伊人中文字幕精品 |