本文
介绍了关于php flash
文件读取
背景颜色的帧宽度的例子,供大家
参考。
具体实现
方法如下:
复制代码代码如下:< PHP
*
实例:
文件大小= /数据/ ad_files / 5 / 5。SWF;
新闪存();
闪光灯闪光->美元=美元getswfinfo(文件);
回声
该文件的宽度为:;
回声
文件的版本是;
回声
文件的帧数。$闪光{帧数};
回声
文件的帧速率是美元。闪光{帧率};
回声
文件的背景颜色是美元。闪光{bgcolor};
* /
类的FLASH
{
是否返回背景色
公共need_back_color美元= false;
是否返回版本
公共need_version美元= false;
是否返回/帧速率
公共need_framerate美元= false;
是否返回帧的个数
公共need_framecount美元= false;
公共
功能__construct()
{
}
公共功能getswfinfo($文件名)
{
如果(file_exists($文件名)){
文件
修改时间。
;
{ { { }
目标文档不存在!;
返回数组(
错误= $文件名);
}
打开文件
RS = fopen(文件名美元美元,R);
读取
数据文件 $str = fread($ RS,文件大小($文件名));
X
如果($ { 0 } f )
{
文档已经是未
压缩的文档:
{人}
第一= substr($str美元,0.8);
最后美元= substr($str,8);
最后,gzuncompress美元(美元最后);
美元=第一美元。最后美元;
$ 0 { f;
未压缩的文档信息:
}
信息=美元美元-> getInfo($str);
Fclose($ RS);
返回$信息;
}
私有
函数mydecbin($str,美元指数)
{
$ FBIN = decbin(ORD($str { $指数}));
而(strlen($ FBIN)<8)$ FBIN =0。$ FBIN;
返回FBIN;
}
私有函数colorhex($数据)
{
TMP = dechex美元(美元数据);
如果(strlen($ TMP)<2){
$ TMP = '0'。$ TMP;
}
返回$ TMP;
}
私有函数GetInfo($str)
{
转换二进制文件
美元美元-> mydecbin FBIN =($str,8);
单位长度计算
$ Slen = bindec(substr($ FBIN,0, 5));
字节的计算
recsize美元=长* 4 + 5美元;
recsize美元=细胞($ recsize / 8);
二进制文件
recbin美元= $ FBIN;
为($我= 9;$我<< recsize + 8美元美元;i++)
{
recbin美元=美元-> mydecbin($str,$我);
}
记录数据
数组();
($ i = 0;$ i < 4;$ + +)
{
$ REC { } = bindec(substr(recbin美元,5 + $我* $ Slen,$ Slen)) / 20;
}
如果(美元-> need_back_color){
背景/颜色
为($我= recsize + 12美元美元;我< strlen(str);$我+ +)
{
如果(ORD($str {我})ORD($str { $我+ 1 })= = 67 = = 2)
{
背景颜色=美元美元-> colorhex(ORD($str { $我+ 2 }))。美元-> colorhex(ORD($str { $我+ 3 }))。美元-> colorhex(ORD($str { $我+ 4 }));
打破;
}
}
}
如果(美元-> need_version){
版本
美元的版本= ORD($str { 3 });
}
如果(美元-> need_framerate){
帧速率
$帧率= ORD($str { $ recsize + 8 })/ 256 + ORD($str { $ recsize + 9 });
}
如果(美元-> need_framecount){
帧的数目
$帧数= ORD($str { 11 } recsize美元+)* 256 + ORD($str { $ recsize + 10 });
}
返回的数组(bgcolor= $ bgcolor,
版本= $版本,
帧率= $帧率,
帧数= $帧数,
宽度= $ 1 { },
高度= $ 3 { }
);
}
}
>
希望本文能对大家的PHP
程序设计有所帮助。