>  기사  >  백엔드 개발  >  php_php 팁에서 플래시 파일의 높이, 너비, 프레임 번호 및 배경색을 읽는 방법

php_php 팁에서 플래시 파일의 높이, 너비, 프레임 번호 및 배경색을 읽는 방법

WBOY
WBOY원래의
2016-05-16 20:26:231173검색

이 글의 예제에서는 PHP에서 플래시 파일의 높이, 너비, 프레임 번호, 배경색을 읽는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요.

구체적인 구현 방법은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
/*
예:
$file = '/data/ad_files/5/5.swf'
$flash = 새로운 플래시()
$flash = $flash->getswfinfo($file)
에코 "
파일의 너비와 높이는 ".$flash["width"].":".$info["height"];
에코 "
파일 버전은 ".$flash["version"];
에코 "
파일 프레임 수는 ".$flash["framecount"];
에코 "
파일 프레임 속도는 ".$flash["framerate"];
에코 "
파일 배경색은 ".$flash["bgcolor"];
*/
클래스 플래시
{
//배경색 반환 여부
공개 $need_back_color = 거짓

//버전 반환 여부
공개 $need_version = false

//프레임 속도를 반환할지 여부
공개 $need_framerate = false

//프레임 수를 반환할지 여부
공개 $need_framecount = 거짓
공개 함수 __construct()
{
}
공개 함수 getswfinfo( $filename )
{
If ( file_exists($filename) ) {
//echo "파일 수정 시간:".date("m d y h:i:s.", filemtime($filename))."
";
} 다른 {
//echo "대상 파일이 존재하지 않습니다!"
         배열 반환( "error" => $filename )
}
//파일 열기
$rs = fopen($filename,"r")
​  
//파일 데이터 읽기
$str = fread( $rs , 파일 크기( $filename ) )
///
If($str[0] == "f")
{
//에코 "
파일이 이미 압축 해제되었습니다: ";
} 다른 {
         $first = substr($str,0,8)
         $last = substr($str,8)
          //
         $last = gzuncompress($last)
          //
$str = $마지막
         $str[0] = "f"
//에코 "
압축해제된 파일 정보: ";
}
$info = $this->getinfo( $str ); fclose( $rs )
$정보 반환
}
개인 함수 mydecbin($str,$index)
{
$fbin = decbin(ord($str[$index]))
동안(strlen($fbin)<8)$fbin="0".$fbin
$fbin 반환
}
개인 함수 colorhex($data)
{
$tmp = dechex($data)
If (strlen($tmp)<2) {
$tmp='0' .$tmp
}
$tmp 반환
}
개인 함수 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 = 배열()
for( $i = 0 ; $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]));
          부서지다;
         }
      }
    }
    
    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] );
    }
    
    반환 배열( "bgcolor" => $bgcolor ,
            "버전" => $버전 , 
            "프레임 속도" => $framerate , 
            "프레임 수" => $framecount , 
            '너비'=>$rec[1],
            '높이'=>$rec[3]
            );
  }
}
?>

希望本文所述对大家程序设计有所帮助。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.