|
- 文件头就是为了描述一个文件的一些重要的属性,比如图片的长度、宽度、像素尺寸等,当程序打开文件时读取这些属性对文件进行处理。
|
|
- getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条错误信息。
|
|
- getimagesize( string filename ) 例子:
- <?php $array = getimagesize("images/flower_1.jpg"); print_r($array); ?>
- 浏览器显示如下:
- Array ( [0] => 350 [1] => 318 [2] => 2 [3] => width="350" height="318" [bits] => 8 [channels] => 3 [mime] => image/jpeg ) 返回结果说明
- 索引 0 给出的是图像宽度的像素值
- 索引 1 给出的是图像高度的像素值
- 索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
- 索引 3 给出的是一个宽度和高度的字符串,可以直接用于 HTML 的 <image> 标签
- 索引 bits 给出的是图像的每种颜色的位数,二进制格式
- 索引 channels 给出的是图像的通道值,RGB 图像默认是 3
- 索引 mime 给出的是图像的 MIME 信息,此信息可以用来在 HTTP Content-type 头信息中发送正确的信息,如:header("Content-type: image/jpeg");
|
|
- 原型为:int memcmp(const void *str1, const void *str2, size_t n));
- 其功能是把存储区 str1 和存储区 str2 的前 n 个字节进行比较。
- 该函数是按字节比较的,位于string.h。
|
|
- Web应用程序在校验文件类型、文件扩展名的同时,也会校验文件头,从而进一步确定文件的类型。针对这种情况,可以通过在上传的一句话木马文件的开头加入特定的文件头从而绕过这种校验方式。
|
|
- JPG
- FF D8 FF E0 00 10 4A 46 49 46
- png
- 89 50 4E 47 0D 0A 1A 0A
- gif
- 47 49 46 38 39 61
|
|
- 1.将文件的前面加通过16进制编辑器添加文件头。如:GIF89a
- 2.将一个正常的图片文件添加到一个php文件前面,通过命令行copy。
|