Resmin PHP'de geçerli olup olmadığını kontrol etmenin en iyi ve hızlı yolu nedir? GIF, JPG ve PNG görüntülerini kontrol edebilmek için buna ihtiyacım var.Resmin PHP'de geçerli olup olmadığını kontrol etmenin en iyi ve hızlı yolu nedir?
cevap
Ben getimagesize
tahmin:
list($width, $height, $type, $attr) = getimagesize("path/to/image.jpg");
if (isset($type) && in_array($type, array(
IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF))) {
...
}
Okunan belgeleri okuyun: Belirli bir dosyanın geçerli bir resim olduğunu kontrol etmek için getimagesize() kullanmayın. http://php.net/manual/en/function.getimagesize.php –
bu işlevi kullanın ... çok
function isImage($url){
$params = array('http' => array(
'method' => 'HEAD'
));
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp)
return false; // Problem with url
$meta = stream_get_meta_data($fp);
if ($meta === false){
fclose($fp);
return false; // Problem reading data from url
}
}
evet haklısınız ... eklenmiş parantez. –
exif_imagetype daha iyi bir çözümdür URL'ler denetler.
Bu yöntem getimagesize kullanmaktan daha hızlıdır. php.net alıntı yapmak için "Dönüş değeri, dizin 2'de getimagesize() döndürenle aynı değerdir, ancak exif_imagetype() çok daha hızlıdır."
function is_image($path)
{
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}
Elbette bu sadece EXIF uzantısı etkinleştirildiğinde çalışır. Benim durumumda bu durum böyle değil ve bende bunun üzerinde hiçbir kontrolüm yok :( –
Bunu kullanabilirim PHP documentation:
Verilen bir dosyanın geçerli bir resim olup olmadığını kontrol etmek için getimagesize() kullanmayın. Bunun yerine Fileinfo uzantısı gibi üretken bir çözüm. "
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$type = finfo_file($finfo, "test.jpg");
if (isset($type) && in_array($type, array("image/png", "image/jpeg", "image/gif"))) {
echo 'This is an image file';
} else {
echo 'Not an image :(';
}
exif_imagetype getImageSize çok daha hızlı ve önerdiği gibi
function isImage($pathToFile)
{
if(false === exif_imagetype($pathToFile))
return FALSE;
return TRUE;
}
(yalın Mem ayak izi bırakarak) gd-Lib kullanmaz:
if(exif_imagetype('path/to/image.jpg')) {
// your image is valid
}
- 1. Java - URL'nin mevcut olup olmadığını kontrol etmenin en hızlı yolu
- 2. Nesnenin var olup olmadığını kontrol etmenin en hızlı yolu
- 3. Çoklu değişkenlerin olup olmadığını kontrol etmenin en pythonik yolu nedir?
- 4. Bu girdinin veritabanında olup olmadığını kontrol etmenin en hızlı yolu nedir?
- 5. Bir tuple'ın Python'da boş/Hiçbir değeri olup olmadığını kontrol etmenin en iyi yolu nedir?
- 6. Excel OLE'nin kullanılabilir olup olmadığını kontrol etmenin doğru yolu nedir?
- 7. İki tarihin Groovy'de aynı takvim günü olup olmadığını kontrol etmenin en iyi yolu?
- 8. C# içinde birden fazla boole durumu olup olmadığını kontrol etmenin en iyi yolu
- 9. C++ 'da bellek sızıntılarını kontrol etmenin en iyi yolu nedir?
- 10. XHR2 dosya yükleme desteğini kontrol etmenin en iyi yolu nedir?
- 11. Drupal 7: db girişinin mevcut olup olmadığını kontrol etmenin en hızlı yolu
- 12. WCF bitiş noktasının dinlenip dinlenmediğini kontrol etmenin en hızlı yolu
- 13. Objective-C Çalışma Zamanı: sınıfın protokole uygun olup olmadığını kontrol etmenin en iyi yolu?
- 14. Bir dir boş olup olmadığını kontrol etmenin en iyi yolu php
- 15. Enum değerlerini kontrol etmenin hızlı yolu
- 16. JavaScript değişkeninin boş olup olmadığını kontrol etmenin en güvenilir yolu nedir?
- 17. mysqli sorgusunun başarılı olup olmadığını kontrol etmenin doğru yolu
- 18. Çerezin httponly olup olmadığını kontrol etmenin bir yolu var mı?
- 19. Bir dosyanın varlığını kontrol etmenin en hızlı yolu NodeJs
- 20. Bir dosyayı görmek için test etmenin hızlı bir yolu nedir?
- 21. Listenin bir türü olup olmadığını kontrol edin?
- 22. Perl'de UTC ofsetini elde etmenin en iyi yolu nedir?
- 23. HERHANGİ bir sütunun NULL olup olmadığını kontrol etmenin hızlı bir yolu var mı?
- 24. PHP dosya olup olmadığını kontrol edin ve dizin bulunmuyor
- 25. Bir dizenin boş olup olmadığını kontrol etmek için Ruby yolu?
- 26. .NET ile virgülle ayrılmış liste içinde dizgiyi kontrol etmenin en iyi yolu?
- 27. SSL dijital sertifikanın web sunucusuna yüklenmeden geçerli olup olmadığını kontrol etmenin bir yolu var mı?
- 28. Bir nesnenin var olup olmadığını ve tek bir satırda bir çocuğu olup olmadığını kontrol etmenin bir yolu var mı?
- 29. C# Başka bir resmin içinde görüntünün olup olmadığını kontrol etme
- 30. Lodash dönüş dizisi yolu geçerli olup olmadığını
siz "geçerli" ile neyi kastediyoruz: Burada
örneğidir? Görüntü dosyasının doğru formatta olup olmadığını kontrol etmek? –