|
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 主站蜘蛛池模板: 欧美成人momandson | 国产高清美女一级毛片久久 | 欧美亚洲精品午夜福利AV | 亚洲视频欧美视频 | 欧美黑白配性xxxxx | 在线 | 果冻国产传媒61国产免费 | yellow在线观看免费直播 | 久久精品麻豆国产天美传媒果冻 | 国产网站免费观看 | 最近的2019中文字幕国语完整版 | 成人免费精品视频 | 超碰97人人做人人爱少妇 | 小柔的性放荡羞辱日记 | 婚后被调教当众高潮H喷水 回复术士勇者免费观看全集 | 无码乱人伦一区二区亚洲一 | YELLOW日本免费观看播放 | 国产视频精品免费 | 爽娇妻快高h | 色老99九久精品偷偷鲁 | 无码AV免费精品一区二区三区 | 久久天天婷婷五月俺也去 | 麻豆成人啪啪色婷婷久久 | 国产午夜人成在线视频麻豆 | 色综合久久久久久 | 亚洲精品无码不卡在线播放he | japonensis护士| 红桃传媒少妇人妻网站无码抽插 | 我要色色网 | 亚洲成人免费在线 | 紧缚束缚调教丨vk | 亚洲一区乱码电影在线 | 日本色高清 | 做暖免费观看日本 | 男女床上黄色 | 麻豆第一区MV免费观看网站 | 飘雪在线观看免费完整版 | 99视频免费在线观看 | 99热视频这里只有久久精品 | 午夜影院视费x看 | 打扑克床上视频不用下载免费观看 | 混乱家庭电影完整版在线看 |