> 백엔드 개발 > PHP 튜토리얼 > PHP에서 파일의 콘텐츠 유형을 결정하는 방법은 무엇입니까?

PHP에서 파일의 콘텐츠 유형을 결정하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-14 12:19:02
원래의
643명이 탐색했습니다.

How to Determine the Content Type of a File in PHP?

PHP에서 파일 콘텐츠 유형을 결정하는 방법

첨부 파일이 포함된 이메일을 보낼 때 파일의 올바른 Content-Type 헤더를 설정하는 것이 중요합니다. 성공적인 배송과 올바른 디스플레이를 보장하기 위해 첨부 파일을 첨부합니다. PHP에서는 file_get_contents() 함수를 사용하여 첨부 파일의 콘텐츠를 검색할 수 있지만 콘텐츠 유형을 결정하려면 추가 단계가 필요합니다.

getFileMimeType() 함수

이 작업을 단순화하려면 다음 getFileMimeType() 함수를 사용하는 것이 좋습니다.

function getFileMimeType($file) {
    if (function_exists('finfo_file')) {
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $type = finfo_file($finfo, $file);
        finfo_close($finfo);
    } else {
        require_once 'upgradephp/ext/mime.php';
        $type = mime_content_type($file);
    }

    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        $secondOpinion = exec('file -b --mime-type ' . escapeshellarg($file), $foo, $returnCode);
        if ($returnCode === 0 && $secondOpinion) {
            $type = $secondOpinion;
        }
    }

    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        require_once 'upgradephp/ext/mime.php';
        $exifImageType = exif_imagetype($file);
        if ($exifImageType !== false) {
            $type = image_type_to_mime_type($exifImageType);
        }
    }

    return $type;
}
로그인 후 복사

작동 방식

이 함수는 콘텐츠 유형을 결정하기 위해 여러 가지 방법을 시도합니다.

  1. finfo_file(): 사용 가능한 경우 PHP finfo 함수를 사용합니다.
  2. mime_content_type(): mime_content_type으로 대체됩니다. () finfo를 사용할 수 없는 경우 대안.
  3. file 명령: 위 방법이 실패하면 MIME 유형 식별을 위해 OS의 파일 명령을 실행하려고 시도합니다.
  4. exif_imagetype(): 최후의 수단으로 EXIF_imagetype()을 사용하여 이미지의 MIME 유형을 결정합니다.

이러한 방법을 조합하여 사용하면 이 함수는 강력한 방식을 제공합니다. 다양한 파일 형식의 콘텐츠 형식을 검색합니다.

위 내용은 PHP에서 파일의 콘텐츠 유형을 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿