php读取flash文件高宽帧数背景颜色代码
php读取flash文件高宽帧数背景颜色代码
<?php /* 示例: $file = /data/ad_files/5/5.swf; $flash = new flash(); $flash = $flash->getswfinfo($file); echo " 文件的宽高是:".$flash["width"].":".$info["height"]; echo " 文件版本是".$flash["version"]; echo " 文件帧数量是".$flash["framecount"]; echo " 文件帧速率是".$flash["framerate"]; echo " 文件背景颜色是".$flash["bgcolor"]; */ class flash { //是否返回背景色 public $need_back_color = false; //是否返回版本 public $need_version = false; //是否返回帧速率 public $need_framerate = false; //是否返回帧数量 public $need_framecount = false; public function __construct() { } public function getswfinfo($filename) { if (file_exists($filename)) { //echo "文件的修改时间:".date("m d y h:i:s.", filemtime($filename)).""; } else { //echo "目标文件不存在!"; return array( "error" => $filename ); } //打开文件 $rs = fopen($filename, "r"); //读取文件的数据 $str = fread($rs, filesize($filename)); /// if ($str[0] == "f") { //echo "文件已是解压缩的文件:"; } else { $first = substr($str, 0, 8); $last = substr($str, 8); // $last = gzuncompress($last); // $str = $first . $last; $str[0] = "f"; //echo "解压缩后的文件信息:"; } $info = $this->getinfo($str); fclose($rs); return $info; } private function mydecbin($str, $index) { $fbin = decbin(ord($str[$index])); while (strlen($fbin) < 8) $fbin = "0" . $fbin; return $fbin; } private function colorhex($data) { $tmp = dechex($data); if (strlen($tmp) < 2) { $tmp = 0 . $tmp; } return $tmp; } private function getinfo($str) { //换算成二进制 $fbin = $this->mydecbin($str, 8); //计算rec的单位长度 $slen = bindec(substr($fbin, 0, 5)); //计算rec所在的字节 $recsize = $slen * 4 + 5; $recsize = ceil($recsize / 8); //rec的二进制 $recbin = $fbin; for ($i = 9; $i < $recsize + 8; $i++) { $recbin.= $this->mydecbin($str, $i); } //rec数据 $rec = array(); for ($i = 0; $i < 4; $i++) { $rec[] = bindec(substr($recbin, 5 + $i * $slen, $slen)) / 20; } if ($this->need_back_color) { //背景颜色 for ($i = $recsize + 12; $i < strlen($str); $i++) { if (ord($str[$i]) == 67 && ord($str[$i + 1]) == 2) { $bgcolor = $this->colorhex(ord($str[$i + 2])) . $this->colorhex(ord($str[$i + 3])) . $this->colorhex(ord($str[$i + 4])); break; } } } if ($this->need_version) { //版本 $version = ord($str[3]); } if ($this->need_framerate) { //帧速率 $framerate = ord($str[$recsize + 8]) / 256 + ord($str[$recsize + 9]); } if ($this->need_framecount) { //帧数量 $framecount = ord($str[$recsize + 11]) * 256 + ord($str[$recsize + 10]); } return array( "bgcolor" => $bgcolor, "version" => $version, "framerate" => $framerate, "framecount" => $framecount, "width" => $rec[1], "height" => $rec[3] ); } } ?>
永久地址:http://www.phprm.com/frame/php1005193.html
转载随意~请带上教程地址吧^^