请教下php的unpack("C2chars", $bin)的C2charsunpack是什么意思思啊

图片格式查看:
&&&&&用十六进制编辑器察看过图片的文件头,分析的结果,供大家参考:
1.JPEG/JPG- 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识)&- 文件结束标识 (2 bytes): $ff, $d9 (EOI)&2.TGA- 未压缩的前5字节&&&00 00 02 00 00- RLE压缩的前5字节&&&00 00 10 00 003.PNG- 文件头标识 (8 bytes)&&&89 50 4E 47 0D 0A 1A 0A4.GIF- 文件头标识 (6 bytes)&&&47 49 46 38 39(37) 61&&&&&&&&&&&&&&&&&&&&&&&&G&&I&&F&&8&&9 (7)&&a
gif89a 有透明
gif87a 无透明
5.BMP- 文件头标识 (2 bytes)&&&42 4D&&&&&&&&&&&&&&&&&&&&&&&&B&&&M6.PCX- 文件头标识 (1 bytes)&&&0A7.TIFF- 文件头标识 (2 bytes)&&&4D 4D 或 49 498.ICO- 文件头标识 (8 bytes)&&&00 00 01 00 01 00 20 20&9.CUR- 文件头标识 (8 bytes)&&&00 00 02 00 01 00 20 2010.IFF- 文件头标识 (4 bytes)&&&46 4F 52 4D&&&&&&&&&&&&&&&&&&&&&&&&F&&O&&R&&M11.ANI- 文件头标识 (4 bytes)&&&52 49 46 46&&&&&&&&&&&&&&&&&&&&&&&&R&&I&&F&&F&&&&&根据这些文件头标识的收集,我可以写一个识别图像格式的模块了。但是在写这个模块之前可以对收集到的文件头标识进行优化,使得程序中字符串比对次数尽量的少。1.JPEG我们知需要比对文件头的$ff, $d8这两个字符,而不用读取最后的两个结束标识了。2.TGA,ICO,CUR只需比对第三个与第五个字符即可。3.PNG比对[89][50]这两个字符。4.GIF比对[47][49][46]与第五个字符。废话不多说了,利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件,例如jpg文件 是 FFD8 (从低位到高位就要反过来 D8FF 下面都是一样)BMP文件 是 424D ---4D42
附:常见文件的文件头标识
255044 PDF&526563 EML&D0CF11 PPT&4D5AEE COM&E93B03 COM&4D5A90 EXE&424D3E BMP&49492A TIF&384250 PSD&C5D0D3 EPS&0A0501 PCS&89504E PNG&060500 RAW&000002 TGA&60EA27 ARJ&526172 RAR&504B03 ZIP&495363 CAB&1F9D8C Z&524946 WAV&435753 SWF&3026B2 WMV&3026B2 WMA&2E524D RM&00000F MOV&000077 MOV&000001 MPA&FFFB50 MP3&u&3C2144 HTM&FFFE3C XSL&3C3F78 XML&3C3F78 MSC&4C0000 LNK&495453 CHM&805343 scm&D0CF11 XLS&31BE00 WRI&00FFFF MDF&4D4544 MDS&5B436C CCD&00FFFF IMG&FFFFFF SUB&17A150 PCB&2A5052 ECO&526563 PPC&000100 DDB&42494C LDB&2A7665 SCH&2A2420 LIB&434841 FNT&7B5C72 RTF&7B5072 GTD&234445 PRG&000007 PJT&202020 BAS&000002 TAG&4D5A90 dll&4D5A90 OCX&4D5A50 DPL&3F5F03 HLP&4D5A90 OLB&4D5A90 IMM&4D5A90 IME&3F5F03 LHP&C22020 NLS&5B5769 CPX&4D5A16 DRV&5B4144 PBK&24536F PLL&4E4553 NES&87F53E GBC&00FFFF SMD&584245 XBE&005001 XMV&000100 TTF&484802 PDG&000100 TST414331 dwg&D0CF11 max
另外还有一些重要的文件,没有固定的文件头,如下:&TXT 没固定文件头定义&TMP 没固定文件头定义&INI 没固定文件头定义&BIN 没固定文件头定义&DBF 没固定文件头定义&C 没没固定文件头定义&CPP 没固定文件头定义&H 没固定文件头定义&BAT 没固定文件头定义&还有一些不同的文件有相同的文件头,最典型的就是下面:&4D5A90 EXE&4D5A90 dll&4D5A90 OCX&4D5A90 OLB&4D5A90 IMM&4D5A90 IME
附网上例子
根据二进制流获取图片类型&
public function getFileType($file,&$fileType,&$mime){&&&&&&&&$bin = substr($file,0,2);&&&&&&&&$strInfo = @unpack("C2chars", $bin);&&&&&&&&$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);&&&&&&&&$fileType = '';&&&&&&&&switch ($typeCode)&&&&&&&&{&&&&&&&&&&&&case 7790:&&&&&&&&&&&&&&&&$fileType = 'exe';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case 7784:&&&&&&&&&&&&&&&&$fileType = 'midi';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case 8297:&&&&&&&&&&&&&&&&$fileType = 'rar';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case 255216:&&&&&&&&&&&&&&&&$fileType = 'jpg';&&&&&&&&&&&&&&&&$mime = 'image/jpeg';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case 7173:&&&&&&&&&&&&&&&&$fileType = 'gif';&&&&&&&&&&&&&&&&$mime = 'image/gif';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case 6677:&&&&&&&&&&&&&&&&$fileType = 'bmp';&&&&&&&&&&&&&&&&$mime = 'image/bmp';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case 13780:&&&&&&&&&&&&&&&&$fileType = 'png';&&&&&&&&&&&&&&&&$mime = 'image/png';&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&default:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}
mmime type:
ime.ez=application/andrew-inset
mime.csm=application/cu-seeme
mime.cu=application/cu-seeme
mime.tsp=application/dsptype
mime.spl=application/futuresplash
mime.hta=application/hta
mime.cpt=application/mac-compactpro
mime.hqx=application/mac-binhex40
mime.nb=application/mathematica
mime.mdb=application/msaccess
mime.doc=application/msword
mime.dot=application/msword
mime.bin=application/octet-stream
mime.oda=application/oda
mime.ogg=application/ogg
mime.prf=application/pics-rules
mime.key=application/pgp-keys
mime.pdf=application/pdf
mime.pgp=application/pgp-signature
mime.ps=application/postscript
mime.ai=application/postscript
mime.eps=application/postscript
mime.rss=application/rss+xml
mime.rtf=application/rtf
mime.smi=application/smil
mime.smil=application/smil
mime.wp5=application/wordperfect5.1
mime.xht=application/xhtml+xml
mime.xhtml=application/xhtml+xml
mime.zip=application/zip
mime.cdy=application/vnd.cinderella
mime.mif=application/vnd.mif
mime.xls=application/vnd.ms-excel
mime.xlb=application/vnd.ms-excel
mime.cat=application/vnd.ms-pki.seccat
mime.stl=application/vnd.ms-pki.stl
mime.ppt=application/vnd.ms-powerpoint
mime.pps=application/vnd.ms-powerpoint
mime.pot=application/vnd.ms-powerpoint
mime.sdc=application/vnd.stardivision.calc
mime.sda=application/vnd.stardivision.draw
mime.sdd=application/vnd.stardivision.impress
mime.sdp=application/vnd.stardivision.impress
mime.smf=application/vnd.stardivision.math
mime.sdw=application/vnd.stardivision.writer
mime.vor=application/vnd.stardivision.writer
mime.sgl=application/vnd.stardivision.writer-global
mime.sxc=application/vnd.sun.xml.calc
mime.stc=application/vnd.sun.xml.calc.template
mime.sxd=application/vnd.sun.xml.draw
mime.std=application/vnd.sun.xml.draw.template
mime.sxi=application/vnd.sun.xml.impress
mime.sti=application/vnd.sun.xml.impress.template
mime.sxm=application/vnd.sun.xml.math
mime.sxw=application/vnd.sun.xml.writer
mime.sxg=application/vnd.sun.xml.writer.global
mime.stw=application/vnd.sun.xml.writer.template
mime.sis=application/vnd.symbian.install
mime.wbxml=application/vnd.wap.wbxml
mime.wmlc=application/vnd.wap.wmlc
mime.wmlsc=application/vnd.wap.wmlscriptc
mime.wk=application/x-123
mime.dmg=application/x-apple-diskimage
mime.bcpio=application/x-bcpio
mime.torrent=application/x-bittorrent
mime.cdf=application/x-cdf
mime.vcd=application/x-cdlink
mime.pgn=application/x-chess-pgn
mime.cpio=application/x-cpio
mime.csh=application/x-csh
mime.deb=application/x-debian-package
mime.dcr=application/x-director
mime.dir=application/x-director
mime.dxr=application/x-director
mime.wad=application/x-doom
mime.dms=application/x-dms
mime.dvi=application/x-dvi
mime.pfa=application/x-font
mime.pfb=application/x-font
mime.gsf=application/x-font
mime.pcf=application/x-font
mime.pcf.Z=application/x-font
mime.spl=application/x-futuresplash
mime.gnumeric=application/x-gnumeric
mime.sgf=application/x-go-sgf
mime.gcf=application/x-graphing-calculator
mime.gtar=application/x-gtar
mime.tgz=application/x-gtar
mime.taz=application/x-gtar
mime.hdf=application/x-hdf
mime.phtml=application/x-httpd-php
mime.pht=application/x-httpd-php
mime.php=application/x-httpd-php
mime.phps=application/x-httpd-php-source
mime.php3=application/x-httpd-php3
mime.php3p=application/x-httpd-php3-preprocessed
mime.php4=application/x-httpd-php4
mime.ica=application/x-ica
mime.ins=application/x-internet-signup
mime.isp=application/x-internet-signup
mime.iii=application/x-iphone
mime.jar=application/x-java-archive
mime.jnlp=application/x-java-jnlp-file
mime.ser=application/x-java-serialized-object
mime.class=application/x-java-vm
mime.js=application/x-javascript
mime.chrt=application/x-kchart
mime.kil=application/x-killustrator
mime.kpr=application/x-kpresenter
mime.kpt=application/x-kpresenter
mime.skp=application/x-koan
mime.skd=application/x-koan
mime.skt=application/x-koan
mime.skm=application/x-koan
mime.ksp=application/x-kspread
mime.kwd=application/x-kword
mime.kwt=application/x-kword
mime.latex=application/x-latex
mime.lha=application/x-lha
mime.lzh=application/x-lzh
mime.lzx=application/x-lzx
mime.frm=application/x-maker
mime.maker=application/x-maker
mime.frame=application/x-maker
mime.fm=application/x-maker
mime.fb=application/x-maker
mime.book=application/x-maker
mime.fbdoc=application/x-maker
mime.mif=application/x-mif
mime.wmz=application/x-ms-wmz
mime.wmd=application/x-ms-wmd
mime.com=application/x-msdos-program
mime.exe=application/x-msdos-program
mime.bat=application/x-msdos-program
mime.dll=application/x-msdos-program
mime.msi=application/x-msi
mime.nc=application/x-netcdf
mime.pac=application/x-ns-proxy-autoconfig
mime.nwc=application/x-nwc
mime.o=application/x-object
mime.oza=application/x-oz-application
mime.pl=application/x-perl
mime.pm=application/x-perl
mime.p7r=application/x-pkcs7-certreqresp
mime.crl=application/x-pkcs7-crl
mime.qtl=application/x-quicktimeplayer
mime.rpm=application/x-redhat-package-manager
mime.shar=application/x-shar
mime.swf=application/x-shockwave-flash
mime.swfl=application/x-shockwave-flash
mime.sh=application/x-sh
mime.sit=application/x-stuffit
mime.sv4cpio=application/x-sv4cpio
mime.sv4crc=application/x-sv4crc
mime.tar=application/x-tar
mime.tcl=application/x-tcl
mime.tex=application/x-tex
mime.gf=application/x-tex-gf
mime.pk=application/x-tex-pk
mime.texinfo=application/x-texinfo
mime.texi=application/x-texinfo
mime.~=application/x-trash
mime.%=application/x-trash
mime.bak=application/x-trash
mime.old=application/x-trash
mime.sik=application/x-trash
mime.t=application/x-troff
mime.tr=application/x-troff
mime.roff=application/x-troff
mime.man=application/x-troff-man
mime.me=application/x-troff-me
mime.ms=application/x-troff-ms
mime.ustar=application/x-ustar
mime.src=application/x-wais-source
mime.wz=application/x-wingz
mime.crt=application/x-x509-ca-cert
mime.fig=application/x-xfig
mime.au=audio/basic
mime.snd=audio/basic
mime.mid=audio/midi
mime.midi=audio/midi
mime.kar=audio/midi
mime.mpga=audio/mpeg
mime.mpega=audio/mpeg
mime.mp2=audio/mpeg
mime.mp3=audio/mpeg
mime.m3u=audio/mpegurl
mime.sid=audio/prs.sid
mime.aif=audio/x-aiff
mime.aiff=audio/x-aiff
mime.aifc=audio/x-aiff
mime.gsm=audio/x-gsm
mime.m3u=audio/x-mpegurl
mime.wma=audio/x-ms-wma
mime.wax=audio/x-ms-wax
mime.rpm=audio/x-pn-realaudio-plugin
mime.ra=audio/x-pn-realaudio
mime.rm=audio/x-pn-realaudio
mime.ram=audio/x-pn-realaudio
mime.ra=audio/x-realaudio
mime.pls=audio/x-scpls
mime.sd2=audio/x-sd2
mime.wav=audio/x-wav
mime.pdb=chemical/x-pdb
mime.xyz=chemical/x-xyz
mime.bmp=image/bmp
mime.gif=image/gif
mime.ief=image/ief
mime.jpeg=image/jpeg
mime.jpg=image/jpeg
mime.jpe=image/jpeg
mime.pcx=image/pcx
mime.png=image/png
mime.svg=image/svg+xml
mime.svgz=image/svg+xml
mime.tiff=image/tiff
mime.tif=image/tiff
mime.wbmp=image/vnd.wap.wbmp
mime.ras=image/x-cmu-raster
mime.cdr=image/x-coreldraw
mime.pat=image/x-coreldrawpattern
mime.cdt=image/x-coreldrawtemplate
mime.cpt=image/x-corelphotopaint
mime.djvu=image/x-djvu
mime.djv=image/x-djvu
mime.ico=image/x-icon
mime.art=image/x-jg
mime.jng=image/x-jng
mime.bmp=image/x-ms-bmp
mime.psd=image/x-photoshop
mime.pnm=image/x-portable-anymap
mime.pbm=image/x-portable-bitmap
mime.pgm=image/x-portable-graymap
mime.ppm=image/x-portable-pixmap
mime.rgb=image/x-rgb
mime.xbm=image/x-xbitmap
mime.xpm=image/x-xpixmap
mime.xwd=image/x-xwindowdump
mime.igs=model/iges
mime.iges=model/iges
mime.msh=model/mesh
mime.mesh=model/mesh
mime.silo=model/mesh
mime.wrl=model/vrml
mime.vrml=model/vrml
mime.csv=text/comma-separated-values
mime.css=text/css
mime.323=text/h323
mime.htm=text/html
mime.html=text/html
mime.uls=text/iuls
mime.mml=text/mathml
mime.asc=text/plain
mime.txt=text/plain
mime.text=text/plain
mime.diff=text/plain
mime.rtx=text/richtext
mime.rtf=text/rtf
mime.sct=text/scriptlet
mime.wsc=text/scriptlet
mime.tm=text/texmacs
mime.ts=text/texmacs
mime.tsv=text/tab-separated-values
mime.jad=text/vnd.sun.j2me.app-descriptor
mime.wml=text/vnd.wap.wml
mime.wmls=text/vnd.wap.wmlscript
mime.xml=text/xml
mime.xsl=text/xml
mime.h++=text/x-c++hdr
mime.hpp=text/x-c++hdr
mime.hxx=text/x-c++hdr
mime.hh=text/x-c++hdr
mime.c++=text/x-c++src
mime.cpp=text/x-c++src
mime.cxx=text/x-c++src
mime.cc=text/x-c++src
mime.h=text/x-chdr
mime.csh=text/x-csh
mime.c=text/x-csrc
mime.java=text/x-java
mime.moc=text/x-moc
mime.p=text/x-pascal
mime.pas=text/x-pascal
mime.***=text/x-pcs-***
mime.shtml=text/x-server-parsed-html
mime.etx=text/x-setext
mime.sh=text/x-sh
mime.tcl=text/x-tcl
mime.tk=text/x-tcl
mime.tex=text/x-tex
mime.ltx=text/x-tex
mime.sty=text/x-tex
mime.cls=text/x-tex
mime.vcs=text/x-vcalendar
mime.vcf=text/x-vcard
mime.dl=video/dl
mime.fli=video/fli
mime.gl=video/gl
mime.mpeg=video/mpeg
mime.mpg=video/mpeg
mime.mpe=video/mpeg
mime.qt=video/quicktime
mime.mov=video/quicktime
mime.mxu=video/vnd.mpegurl
mime.dif=video/x-dv
mime.dv=video/x-dv
mime.lsf=video/x-la-asf
mime.lsx=video/x-la-asf
mime.mng=video/x-mng
mime.asf=video/x-ms-asf
mime.asx=video/x-ms-asf
mime.wm=video/x-ms-wm
mime.wmv=video/x-ms-wmv
mime.wmx=video/x-ms-wmx
mime.wvx=video/x-ms-wvx
mime.avi=video/x-msvideo
mime.movie=video/x-sgi-movie
mime.ice=x-conference/x-cooltalk
mime.vrm=x-world/x-vrml
mime.vrml=x-world/x-vrml
mime.wrl=x-world/x-vrml
参考:http://www.cnblogs.com/jetlee/archive//1870223.htmlhttp://blog.sina.com.cn/s/blog_6bfe46bc0100q1bx.htmlhttp://samver.blogbus.com/logs/.htmlhttp://www.garykessler.net/library/file_sigs.html
阅读(...) 评论()编写函数,replace(chars[].char1.char2.将字符串中所有字符c1替换成c_百度知道
编写函数,replace(chars[].char1.char2.将字符串中所有字符c1替换成c
,并在main()函数中调用...
,并在main()函数中调用
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:1497
获赞数:19102
char *replace(char *source, char *sub, char *rep) {
/*pc1 是复制到结果result扫描指针*/ /*pc2 是扫描 source 辅助指针*/ /*pc3 寻找子串时,为检查变化中source是否和子串相等,是指向sub扫描指针 */ /*找到匹配后,为了复制到结果串,是指向rep扫描指针*/ char *pc1, *pc2, *pc3;
int isource, isub,
isub = strlen(sub); /*对比串长度*/ irep = strlen(rep); /*替换串长度*/ isource= strlen(source); /*源串长度*/
if(NULL==*sub)
return strdup(source);
/*申请结果串需要空间*/ result = (char *)malloc(((irep&isub)?(float)strlen(source)/isub*irep+1:isource)*sizeof(char)); pc1 = /*为pc1依次复制结果串每个字节作准备*/
while(*source != NULL)
/*为检查source和sub是否相等作准备,为pc2,pc3 赋初值*/
/* 出循环(任)条件是:
* *pc2 不等于 *pc3 (和子串不相等)
* pc2 到源串结尾
* pc3 到源串结尾 (此时,检查了全部子串,source处和sub相等)
*****************************************************/
while(*pc2==*pc3 && *pc3 != NULL && *pc2 != NULL)
pc2++, pc3;
/* 如果找到了子串,进行以下处理工作*/
if(NULL==*pc3)
/*将替代串追加到结果串*/
while(*pc3 != NULL)
*pc1 = *pc3;
source = pc2;
/* 检查 source和sub相等循环结束后
* pc2 对应位置是在 sub 中串结束符处该是源串中下个位置
* 将 source 指向其前面个
***************************************************/
/*如果没找到子串,下面复制source所指字节到结果串*/
/* 将source向后移个*/
*pc1 = NULL;
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫一扫体验手机阅读
php判断上传文件类型(防止篡改后缀)
$bin = substr($file,0,2);
$strInfo = @unpack(&C2chars&, $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$fileType = '';
switch ($typeCode)
& & case 7790:
& & & & $fileType = 'exe';
& & case 7784:
& & & & $fileType = 'midi';
& & case 8297:
& & & & $fileType = 'rar';
& & case 255216:
& & & & $fileType = 'jpg';
& & case 7173:
& & & & $fileType = 'gif';
& & case 6677:
& & & & $fileType = 'bmp';
& & case 13780:
& & & & $fileType = 'png';
& & default:
& & & & echo 'unknown';
echo '&br/&this is a(an) '.$fileType.' file:'.$typeC
<span type="1" blog_id="1163045" userid='
29篇文章,2W+人气,0粉丝
企业级网安运维
¥51.0066人订阅
鸟瞰Web应用开发
¥51.0027人订阅PHP unpack() 函数
从二进制字符串对数据进行解包:
&?php$data = "PHP";
print_r(unpack("C*",$data));
定义和用法
unpack() 函数从二进制字符串对数据进行解包。
unpack(format,data)
必需。规定在解包数据时所使用的格式。
可能的值:
a - NUL 填充的字符串
A - SPACE 填充的字符串
h - 十六进制字符串,低位在前
H - 十六进制字符串,高位在前
c - signed char
C - unsigned char
s - signed short(总是16位, machine 字节顺序)
S - unsigned short(总是16位, machine 字节顺序)
n - unsigned short(总是16位, big endian 字节顺序)
v - unsigned short(总是16位, little endian 字节顺序)
i - signed integer(取决于 machine 的大小和字节顺序)
I - unsigned integer(取决于 machine 的大小和字节顺序)
l - signed long(总是32位, machine 字节顺序)
L - unsigned long(总是32位, machine 字节顺序)
N - unsigned long(总是32位, big endian 字节顺序)
V - unsigned long(总是32位, little endian 字节顺序)
f - float(取决于 machine 的大小和表示)
d - double(取决于 machine 的大小和表示)
x - NUL 字节
X - 备份一个字节
Z - NUL 填充的字符串
@ - NUL 填充绝对位置
必需。规定被解包的二进制数据。
如果成功则返回数组,如果失败则返回 FALSE。
PHP 版本:
更新日志:
自 PHP 5.5.0 起,为 Perl 兼容进行了下列更改:"a" 代码保留尾随 NULL 字节。
"A" 代码删除所有尾随 ASCII 空白。新增 "Z" 代码用于 NUL 填充的字符串,并移除尾随 NULL 字节。
对数据进行解包:
&?php$data = "PHP";
print_r(unpack("C*myint",$data));
对数据进行解包:
&?php$bin = pack("c2n2",0x8,65,66);
print_r(unpack("c2chars/n2int",$bin));
感谢您的支持,我会继续努力的!
扫码打赏,你说多少就多少
记住登录状态
重复输入密码PHP unpack() 函数
PHP unpack() 函数
定义和用法
unpack() 函数从二进制字符串对数据进行解包。
unpack(format,data)
必需。规定在解包数据时所使用的格式。
可选。规定被解包的二进制数据。
format 参数的可能值:
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
$data = &PHP&;
print_r(unpack(&C*&,$data));
$data = &PHP&;
print_r(unpack(&C*myint&,$data));
[myint1] =& 80
[myint2] =& 72
[myint3] =& 80
$bin = pack(&c2n2&,0x8,65,66);
print_r(unpack(&c2chars/n2int&,$bin));
[chars1] =& 52
[chars2] =& 120
[int1] =& 65
[int2] =& 66}

我要回帖

更多关于 struct.unpack 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信