PHP开发

如何获取flash文件(.swf文件)的长度和宽度

Flash文件一般是可以缩放的,但缩放显示会一影响flash的效果,比如动作变慢或变快。要想以最佳状态显示,就需要获取flash文件的长度和宽度,因此要解析flash文件。这里介绍一个很好用的探测flash文件属性的php class – swfheader.class.php.

使用方法:

 

引入该文件

Require(‘swfheader.class.php’);

创建一个类的实例

$swf = new swfheader(false); //false 参数意思是禁用debug模式,若要开启请赋值true。

打开你要探测的swf文件

$path = ‘../../’;

$swf->loadswf($path.”myflash.swf”);

获取参数

$width = $swf->width;//宽度,单位像素

$height=$swf->height;//高度,单位像素
 

还有其他一些属性可以获取,这些信息都储存在$swf数组中,你可以用下面代码来查看这个数组:

<?php

echo “<pre>”;

print_r($swf);

echo “</pre>”;

?>

上面这种写法是为了让数组显示的方式便于阅读,否则就是一行显示开,看着很晕。

输出结果为

swfheader Object

(

    [debug] =>

    [fname] => main_flash8.swf

    [magic] => CWS

    [compressed] => 1

    [version] => 8

    [size] => 2058423

    [width] => 980

    [height] => 750

    [valid] => 1

    [fps] => Array

        (

            [0] => 0

            [1] => 30

        )

 

    [frames] => 107

)

单独访问成员的方式如下

$swf->width;

$swf->fps[0];

 

如果打开debug模式,则结果如下

DEBUG: Data values initialized
DEBUG: Opened myflash.swf
DEBUG: Read MAGIC signature: CWS
DEBUG: Read VERSION: 8
DEBUG: Partial SIZE read: 183
DEBUG: Partial SIZE read: 26624
DEBUG: Partial SIZE read: 2031616
DEBUG: Partial SIZE read: 0
DEBUG: Total SIZE: 2058423
DEBUG: RECT field size: 16 bits
DEBUG: RECT binary value: 0000000000000000 (0)
DEBUG: RECT binary value: 0100110010010000 (980)
DEBUG: RECT binary value: 0000000000000000 (0)
DEBUG: RECT binary value: 0011101010011000 (750)
DEBUG: Frame rate: 30.0
DEBUG: Frames: 107
DEBUG: Finished processing myflash.swf
swfheader Object

(

    [debug] => 1

    [fname] => main_flash8.swf

    [magic] => CWS

    [compressed] => 1

    [version] => 8

    [size] => 2058423

    [width] => 980

    [height] => 750

    [valid] => 1

    [fps] => Array

        (

            [0] => 0

            [1] => 30

        )

 

    [frames] => 107

)

下载swfheader >> [download id=”3″]