|
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 主站蜘蛛池模板: 97国产精品视频观看一 | 免费看一区二区三区 | 国产麻豆精品一区 | 国产成人免费a在线资源 | 国产精品福利久久 | 超91精品手机国产在线 | 色老板在线观看视频 | 亚洲欧美日韩不卡 | 亚洲精品在线第一页 | 国产精品每日更新 | 性感美女一级毛片 | 欧美性满足hd1819 | 国产精品免费看久久久麻豆 | 国产一区二区不卡 | 欧美激情性色生活片在线观看 | 国产黄频在线观看高清免费 | 狠狠色伊人亚洲综合网站l 狠狠色伊人亚洲综合网站色 | 美女久久精品 | 久久久久久久久一级毛片 | 一区二区高清在线观看 | 精品伊人久久久大香线蕉欧美 | 国产在视频线精品视频2021 | 99视频都是精品热在线播放 | 日日日bbb| 国产小视频福利 | 伊人中文在线 | 欧美成人综合在线观看视频 | 久久人人干 | 亚洲乱亚洲乱妇41p国产成人 | 日本乱中文字幕系列在线观看 | 伊人久久大香线蕉资源 | 一级做a爰性色毛片免费 | 另类在线视频 | 青青自拍视频一区二区三区 | 国产大片91精品免费看3 | 亚洲综合色一区二区三区小说 | 精品福利在线播放 | 91久久精品国产91久久性色tv | 国产精品久久久久久久专区 | 91久久国产成人免费观看资源 | 国产在线精品一区二区三区 |