알짜게시판

[PHP] 파일 포맷 알아내기

[code]
<?php
function get_filetype($filename)
{
   $types = [
       'jpg' => [0, "\xFF\xD8\xFF"],
       'png' => [0, "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A"],
       'bmp' => [0, "\x42\x4D"],
       'gif' => [0, "\x47\x49\x46\x38"],
       'mp4' => [4, "\x66\x74\x79\x70\x69\x73\x6F\x6D"],
       'webp' => [8, "\x57\x45\x42\x50"]
   ];
  $rst = false;

  if(is_file($filename) && $hnd = fopen($filename, 'rb'))
  {
      $buf = fread($hnd, 16);

      foreach($types as $type => $patt)
      {
          if(strcmp($patt[1], substr($buf, $patt[0], strlen($patt[1]))) == 0)
          {
              $rst = $type;
              break;
          }
      }

      fclose($hnd);
  }

  return $rst;
}
[/code]

번호 제목 글쓴이 조회 날짜
65 [시크릿DNS] 프록시 혼합 사용 예제 1 249,097 08-07
64 [칼무리] 영역화면 크기 오류인 경우 94,273 12-12
63 [그누보드] CKEditor 5 플러그인 91,009 08-11
62 [그누보드] 사이드바 만들기 90,380 05-04
61 [시크릿DNS] Kaspersky 백신 사용시 DNS 암호화 관련 4 83,086 01-04
60 ChangeDNS - DNS 서버를 손쉽게 변경합니다. 71,255 08-13
59 HTTPS/DNS 차단 쉽게 이해하기 61,524 08-16
58 [그누보드] Syntax Highlight 적용하기 60,549 05-19
57 [그누보드] 아이디 대신 이메일로 회원 가입하기 56,560 02-02
56 [그누보드] 훅을 통한 글쓰기, 댓글 알림 56,227 05-26
55 [Delphi] 파일 포맷 알아내기 50,848 09-08
54 [그누보드] 웹폰트 적용하기 45,481 08-13
열람 [PHP] 파일 포맷 알아내기 45,088 08-23
52 [리눅스] 웹서버 상태 확인 후 자동 재시작 쉘 스크립트 40,552 02-28
51 WinDivert 1753 에러 발생시 40,213 12-20
50 WinDivert 서비스 종료 38,887 02-08
49 안종윤님께서 작성해주신 메뉴얼입니다. 72 33,366 10-26
48 [PHP] Porto 테마에서 포스팅만 Loading Overlay 32,657 03-08
47 SP2 팝업차단 무시하고 팝업띠우기?! 2 23,201 07-22
46 [펌] HTTP 에러 코드표 21,648 04-20
45 [PHP] 파일형 멀티(?) 카운터 19,634 08-31
44 운영자가 접속중인 회원에게 1:1 대화 및 채팅방으로 초대 5 19,318 04-26
43 GChat 타이틀 글자 바꾸기 18,317 12-06
42 악성코드 치료 2 17,053 05-30
41 IFRAME 사용시 길호챗이 안될경우 16,779 11-13
40 길호넷에서 제공되는 클립 맹글기!! 16,568 04-22
39 비밀방 개설시 오류가 생기는경우!!! 3 15,179 04-20
38 [펌] DNS설정으로 인터넷 빠르게!(설정법포함) 14,222 04-06
37 시크릿SNI 화이트 리스트 등록하기 2 12,310 06-29
36 윈도우7 에서 WinDivert 2.2 관련 오류 발생시 11,528 07-10
35 ChangeDNS 10,914 10-22
목록