PHP MIME türünü saptamak

4 Cevap php

Bir dosyaları tespit I (en PHP 5.2 yükler mümkün ve hala aktif olarak geliştirilmiştir) iyi arıyorum yolu PHP türünü MIME.

Ancak mime_content_type() güvenilmez ve onaylanmıyor, mime_content_type() yöntem ve Fileinfo uzantısı farkındayım, ve Fileinfo install "standart" bir PHP (5.2) gelmiyor.

Ben başka bir seçenek var mı?

4 Cevap

Bu ARMUT paketin içine baktı mı?

http://pear.php.net/package/MIME_Type

(Lol üzgünüm ben bitiriyordum gibi bu ay önce soruldu gerçekleştirdi. Oh iyi. Hem bu ekleyebilirsiniz ...)

Eğer file komutunu kullanabilirsiniz * nix sunucu varsa.

file -bi <filepath>

Sanırım bunu yapmak için PHP "exec" kullanmak zorunda? Ben PHP için yeni değilim bu yüzden bu konuda bana teklif yok ama ...

$content_type = exec("file -bi " . escapeshellarg($filepath));

Eğer yol dizesi kaçış ve çıkışı biçimlendirmek gerekebilir o yüzden test etmedi.

Bu diğer yöntemlere göre daha güvenilir olacaktır eğer bilmiyorum.

Sen mim türü bu şekilde almak için başlığını ayrıştırmak, sonra üzerinde çalışan webserver bir İstek içi yapabilirdi. Bu yavaş olduğundan değil, tam istek başlıkları almak sadece Kıvrılmaları kullanın. Büyük dosyalar bakarak eğer bu önemlidir.

Apache çalışan ve bir modül olarak php kullanıyorsanız, SANAL fonksiyonuna bir göz atın. Bu kıvırmak kullanarak daha İstek içi yapmak için hızlı bir yoldur.

Aksi takdirde, uzantısı tarafından mime türünü arama yapabilirsiniz. Bu, tüm iyi adında dosyalar çalışması yapacak.

Eğer dosyanın doğasını kontrol ve türü bildirmek güvenilir bir şey arıyorsanız, kesinlikle Armut MIME Türü iyi bir seçenek değildir. Kolayca test edebilirsiniz. Bir HTML dosyası olun daha sonra PNG için yeniden adlandırın. O bir metin / html dosyası beyan fileinfo sen PECL'de kullanırsanız İnci MIME tipi, ancak bir image / png türü olarak tanır.