|
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 主站蜘蛛池模板: 中文字幕在线观看网址 | 久久99AV无色码人妻蜜 | 99精品小视频 | 97人摸人人澡人人人超一碰 | 亚洲精品高清在线观看 | 98久久人妻无码精品系列蜜桃 | 影音先锋av丝袜天堂 | 欧美午夜a级精美理论片 | 轻轻挺进女教师的身体 | 京香在线播放 | 久久亚洲精品成人 | 恋夜秀场1234手机视频在线观看 | 欧美日韩第一区 | 一级性生活毛片 | 97午夜伦伦电影理论片 | qvod 在线| 激情女人花 | 日日色在线影院 | 台湾佬综合娱乐网 | 久久操韩国自偷拍 | 天美传媒 免费观看 | adc免费观看| 国产日韩欧美有码在线视频 | 手机看片国产日韩欧美 | 欧美日韩看看2015永久免费 | 国产精品久久久精品日日 | 新妺妺窝人体色WWW 新金梅瓶玉蒲团性奴3 | 国产精品成久久久久三级四虎 | 亚洲综合春色另类久久 | 国产一卡在线观看完整版 | 香蕉动漫库 | 最新国自产拍天天更新 | 果冻传媒MV免费播放在线观看 | 在线中文字幕亚洲日韩 | 美女叉腿掰阴大胆艺术照 | 少妇高潮惨叫久久久久久欧美 | xxx暴力xxx| 花蝴蝶在线高清视频观看免费播放 | 国产亚洲精品首页在线播放 | 欧美巨大巨粗黑人性AAAAAA | 日韩AV爽爽爽久久久久久 |