PHP에서 바이너리 스트림의 파일 유형을 결정하는 방법

WBOY
풀어 주다: 2016-10-10 11:55:53
원래의
2973명이 탐색했습니다.

저는 최근 다음과 같은 방법을 사용하여 파일을 다운로드하고, 파일 스트림을 가져오고, 하드 디스크에 저장하고, 파일 형식을 결정했습니다.
그런데 이건 중복인 것 같아요. file_get_contents() 이후에 저장하지 않고 파일 형식을 확인할 수 있나요?

<code class="php">$image=file_get_contents($url);
file_put_contents($imagePath, $image);   //将图片流存入服务器图片目录
$type=image_type_to_extension(exif_imagetype($imagePath));   //文件类型</code>
로그인 후 복사
로그인 후 복사

답글 내용:

저는 최근 다음과 같은 방법을 사용하여 파일을 다운로드하고, 파일 스트림을 가져오고, 하드 디스크에 저장하고, 파일 형식을 결정했습니다.
그런데 이건 중복인 것 같아요. file_get_contents() 이후에 저장하지 않고 파일 형식을 확인할 수 있나요?

<code class="php">$image=file_get_contents($url);
file_put_contents($imagePath, $image);   //将图片流存入服务器图片目录
$type=image_type_to_extension(exif_imagetype($imagePath));   //文件类型</code>
로그인 후 복사
로그인 후 복사

<code>$image = file_get_contents($url);

echo check_image_type($image);

function check_image_type($image)
{
    $bits = array(
        'JPEG' => "\xFF\xD8\xFF",
        'GIF' => "GIF",
        'PNG' => "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a",
        'BMP' => 'BM',
    );
    foreach ($bits as $type => $bit) {
        if (substr($image, 0, strlen($bit)) === $bit) {
            return $type;
        }
    }
    return 'UNKNOWN IMAGE TYPE';
}</code>
로그인 후 복사

<code>$finfo = new finfo(FILEINFO_MIME_TYPE);
var_dump($finfo->file('t.jpg')); // ==> image/jpeg</code>
로그인 후 복사

finfo 확장 프로그램 사용

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!