//创建一个utf8bom头文件 file_put_contents(‘utf8bom.txt’,pack(‘H*’,’EFBBBF’));

https://cloud.tencent.com/developer/salon/activity-1081
fgets(n) ; //前n个字节;
//utf8 bom头
$fp = fopen(‘utf8bom.txt’,’r’);
$head = fread($fp,3);
var_dump(unpack(‘H*’,$head);
//创建一个utf8bom头文件
file_put_contents(‘utf8bom.txt’,pack(‘H*’,’EFBBBF’));
//判断文件头png 89 50 4E 47
//创建一个一像素的蓝色bmp文件
//分析avi文件,时长,宽高https://blog.csdn.net/happydeer/article/details/8775
//指针位置
fseek()
ftell()

首先,RIFF (‘AVI ’…)表征了AVI文件类型。然后就是AVI文件必需的第一个列表——‘hdrl’列表,用于描述AVI文件中各个流的格式信息(AVI文件中的每一路媒体数据都称为一个流)。‘hdrl’列表嵌套了一系列块和子列表——首先是一个‘avih’块,用于记录AVI文件的全局信息,比如流的数量、视频图像的宽和高等,可以使用一个AVIMAINHEADER数据结构来操作:

 

typedef struct _avimainheader {
FOURCC fcc;   // 必须为‘avih’
DWORD  cb;    // 本数据结构的大小,不包括最初的8个字节(fcc和cb两个域)
DWORD  dwMicroSecPerFrame;   // 视频帧间隔时间(以毫秒为单位)
DWORD  dwMaxBytesPerSec;     // 这个AVI文件的最大数据率
DWORD  dwPaddingGranularity; // 数据填充的粒度
DWORD  dwFlags;         // AVI文件的全局标记,比如是否含有索引块等
DWORD  dwTotalFrames;   // 总帧数
DWORD  dwInitialFrames; // 为交互格式指定初始帧数(非交互格式应该指定为0)
DWORD  dwStreams;       // 本文件包含的流的个数
DWORD  dwSuggestedBufferSize; // 建议读取本文件的缓存大小(应能容纳最大的块)
DWORD  dwWidth;         // 视频图像的宽(以像素为单位)
DWORD  dwHeight;        // 视频图像的高(以像素为单位)
DWORD  dwReserved[4];   // 保留
} AVIMAINHEADER;

csv 文件处理

.fputcsv()  //可以excel直接打开

fgetcsv() //读取csv

fopen 还能打开什么?

fopen(‘php://stdout’,’w’);