debug = false ; $this->init() ; } //--------------------------------------------------------------------------- // init() : initialize the data fields to "empty" values //--------------------------------------------------------------------------- function init() { $this->valid = false ; $this->fname = "" ; $this->magic = "" ; $this->compressed = false ; $this->version = 0 ; $this->width = 0 ; $this->height = 0 ; $this->size = 0 ; $this->frames = 0 ; $this->fps[] = Array() ; } //--------------------------------------------------------------------------- // loadswf($filename) : loads $filename and stores data from it's header //--------------------------------------------------------------------------- //VGR09062006 MOD function name & returned value // function getDimensions($filename) { // returns String ; object has been updated $this->fname = $filename ; $fp = @fopen($filename,"rb") ; if ($fp) { $this->magic = fread($fp,3) ; if ($this->magic!="FWS" && $this->magic!="CWS") { $this->valid = 0 ; } else { // Compression if (substr($this->magic,0,1)=="C") $this->compressed = true ; else $this->compressed = false ; // version $this->version = ord(fread($fp,1)) ; // Size $lg = 0 ; // 4 LSB-MSB for ($i=0;$i<4;$i++) { $t = ord(fread($fp,1)) ; $lg += ($t<<(8*$i)) ; } $this->size = $lg ; // RECT... we will "simulate" a stream from now on... read remaining file $buffer = fread($fp,$this->size) ; if ($this->compressed) { // First decompress GZ stream $buffer = gzuncompress($buffer,$this->size) ; } $b = ord(substr($buffer,0,1)) ; $buffer = substr($buffer,1) ; $cbyte = $b ; $bits = $b>>3 ; $cval = "" ; // Current byte $cbyte &= 7 ; $cbyte<<= 5 ; // Current bit (first byte starts off already shifted) $cbit = 2 ; // Must get all 4 values in the RECT for ($vals=0;$vals<4;$vals++) { $bitcount = 0 ; while ($bitcount<$bits) { if ($cbyte&128) { $cval .= "1" ; } else { $cval.="0" ; } $cbyte<<=1 ; $cbyte &= 255 ; $cbit-- ; $bitcount++ ; // We will be needing a new byte if we run out of bits if ($cbit<0) { $cbyte = ord(substr($buffer,0,1)) ; $buffer = substr($buffer,1) ; $cbit = 7 ; } } // O.k. full value stored... calculate $c = 1 ; $val = 0 ; // Reverse string to allow for SUM(2^n*$atom) $tval = strrev($cval) ; for ($n=0;$nwidth = $val ; break ; case 1: $this->width = $val - $this->width ; break ; case 2: // tmp value $this->height = $val ; break ; case 3: $this->height = $val - $this->height ; break ; } $cval = "" ; } // Frame rate $this->fps = Array() ; for ($i=0;$i<2;$i++) { $t = ord(substr($buffer,0,1)) ; $buffer = substr($buffer,1) ; $this->fps[] = $t ; } // Frames $this->frames = 0 ; for ($i=0;$i<2;$i++) { $t = ord(substr($buffer,0,1)) ; $buffer = substr($buffer,1) ; $this->frames += ($t<<(8*$i)) ; } fclose($fp) ; $this->valid = 1 ; } } else { $this->valid = 0 ; } if ($this->valid) { $this_width = $this->width; $this_height = $this->height; $swf_dimensions=$this->width."|".$this->height; return $swf_dimensions; } } } ?>