PHP 5.4.36 Released

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetypeBir resmin türünü saptar

Açıklama

int exif_imagetype ( string $dosya )

exif_imagetype() işlevi bir resmin ilk baytlarındaki dosya imzasını okur.

exif_imagetype() işlevi, desteklenmeyen dosya türlerini diğer exif işlevlerinde kullanmaktan kaçınabilmek için veya tarayıcının belli bir resim türünü gösterip göstermeyeceğini saptamak için $_SERVER['HTTP_ACCEPT'] ile birlikte kullanmak üzere tasarlanmıştır.

Değiştirgeler

dosya
İçerdiği resim türü saptanacak dosya.

Dönen Değerler

Doğru imza bulunduğu takdirde uygun sabitin değeri döndürülür, aksi takdirde FALSE döner. Dönüş değeri getimagesize() ile aynıdır fakat exif_imagetype() daha hızlıdır.

Sürüm Bilgisi

Sürüm: Açıklama
4.3.2 JPC, JP2, JPX, JB2, XBM ve WBMP desteği eklendi.
4.3.0 SWC desteği eklendi.

Öntanımlı Sabitler

exif_imagetype() dönüş değeri olarak şu sabitler tanımlıdır:

Resim türü Sabitleri
Değr Sabit
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (intel bayt sıralaması)
8 IMAGETYPE_TIFF_MM (motorola bayt sıralaması)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM

Örnekler

Örnek 1 - exif_imagetype() örneği

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 
'Bu bir GIF değil.';
}
?>

Ayrıca Bakınız

add a note add a note

User Contributed Notes 8 notes

up
14
admin at leonard !spam challis dot com
4 years ago
Windows users: If you get the fatal error "Fatal error:  Call to undefined function exif_imagetype()", and you have enabled php_exif.dll, make sure you enable php_mbstring.dll. You must put mbstring before exif in the php.ini, i.e.:

extension=php_mbstring.dll
extension=php_exif.dll

You can check whether this has worked by calling phpinfo() and searching for exif.
up
6
Tim
7 years ago
By trial and error, it seems that a file has to be 12 bytes or larger in order to avoid a "Read error!".  Here's a work-around to avoid an error being thrown:

// exif_imagetype throws "Read error!" if file is too small
if (filesize($uploadfile) > 11)
    $mimetype = exif_imagetype($uploadfile);
else
    $mimetype = false;
up
6
christophe dot tournayre at univ*bpclermont dot Fr
1 year ago
Because I only want to check for jpeg or png from a memory string, this is my 2 functions that are quick and don't have any dependencies :

<?php
 
function is_jpeg(&$pict)
  {
    return (
bin2hex($pict[0]) == 'ff' && bin2hex($pict[1]) == 'd8');
  }

  function
is_png(&$pict)
  {
    return (
bin2hex($pict[0]) == '89' && $pict[1] == 'P' && $pict[2] == 'N' && $pict[3] == 'G');
  }
?>
up
3
tom dot ghyselinck at telenet dot be
6 years ago
If the function exif_imagetype() is not available,
you can try the following workaround:

if ( ! function_exists( 'exif_imagetype' ) ) {
    function exif_imagetype ( $filename ) {
        if ( ( list($width, $height, $type, $attr) = getimagesize( $filename ) ) !== false ) {
            return $type;
        }
    return false;
    }
}
up
1
web-coder at ukr dot net
21 days ago
validate file exists and the image type

if(file_exists($path_image) && in_array(exif_imagetype($path_image),array(1, 2, 3, 6))){ ... }
up
-1
Anonymous
8 years ago
Seems to give a 'Read error' warning if the size of the file is very small (2 bytes). I think this is because it needs a min 3 bytes to determine the file type
up
-2
sourabh dot deshmukh at snstech dot com
1 year ago
This functions showing up a warning message that "warnings stream does not support seeking". Is it related to size of file which you mentioned in earlier post or something else. Also how do I get rid of that warning?
up
-2
tom at tomvergote dot be
10 years ago
libexif can also be used to parse image info out of id3 tags:

exif_read_data("mp3_with_2.4ID3TAGS, '', true, false);
To Top