>  기사  >  백엔드 개발  >  확장자를 사용하지 않고 PHP에서 파일 형식을 정확하게 결정하는 방법

확장자를 사용하지 않고 PHP에서 파일 형식을 정확하게 결정하는 방법

墨辰丷
墨辰丷원래의
2018-05-23 17:18:311598검색

이 글은 주로 PHP가 확장자를 사용하지 않고 파일 형식을 정확하게 판별하는 방법을 소개합니다. PHP의 finfo_file 메소드와 파일 형식에 대한 바이너리 스트림의 관련 운영 기술이 필요하면 참조하세요.

예제는 다음과 같습니다. 이 기사에서는 PHP 구현과 파일 유형의 차이점을 설명합니다. 확장자에 따라 파일 유형을 정확하게 결정하는 방법입니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

첫 번째 방법

을 통해 phpfinfo_file()

$handle=finfo_open(FILEINFO_MIME_TYPE);//This function opens a magic database and returns its resource. 
$fileInfo=finfo_file($handle,'./test.txt');// Return information about a file
finfo_close($handle);
print_r($fileInfo);
echo '==========="\n"';

추가로

finfo_buffer: 문자열 버퍼에 대한 정보 반환
finfo_close : 파일 정보 리소스 닫기
mime_content_type:파일의 MIME 콘텐츠 유형 감지(사용되지 않음)

두 번째 방법

바이너리 스트림을 통해 파일 콘텐츠 가져오기

$fp=fopen('test.txt','r')///实际是image/png
$bin = fread($fp, 2); //只读2字节
fclose($fp);
$str_info = @unpack(“C2chars”, $bin);//Unpack data from binary string
$type_code = intval($str_info['chars1'].$str_info['chars2']);// Get the integer value of a variable
$file_type = ”;
switch ($type_code) {
case 7790:
$file_type = 'exe';
break;
case 7784:
$file_type = 'midi';
break;
case 8075:
$file_type = 'zip';
break;
case 8297:
$file_type = 'rar';
break;
case 255216:
$file_type = 'jpg';
break;
case 7173:
$file_type = 'gif';
break;
case 6677:
$file_type = 'bmp';
break;
case 13780:
$file_type = 'png';
break;
default:
$file_type = 'unknown';
break;
}

위는 전체 콘텐츠입니다. 이 글이 모든 분들의 공부에 도움이 되었으면 좋겠습니다.


관련 권장 사항:

PHPprograms_php 기술의 파일 잠금, 뮤텍스 잠금 및 읽기-쓰기 잠금 분석

PHP 프로그래밍에서 프로그램 동시성을 시도하는 여러 가지 방법 Summary_php 기술

PHPLaravel 프레임워크에서 AdminLTE 템플릿을 사용하여 웹 사이트 백엔드 인터페이스_php 기술 작성

위 내용은 확장자를 사용하지 않고 PHP에서 파일 형식을 정확하게 결정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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