الحصول على نوع MIME لملف محلي في PHP5 بدون ملحق PECL؟

StackOverflow https://stackoverflow.com/questions/51110

  •  09-06-2019
  •  | 
  •  

سؤال

mime_content_type() تم إهماله.

كيف يمكنني العثور على MIME type من ملف محلي باستخدام PHP5 ولكن دون استخدام هذه الطريقة المهملة أو PECL fileinfo امتداد؟

يحرر:وهذا ما كنت خائفا منه.من المؤسف أنهم قاموا بإهمال وظيفة مضمنة لصالح وظيفة تتطلب امتدادًا غير متوفر دائمًا.

هل كانت مفيدة؟

المحلول

إذا لم تتمكن من استخدام ملحق fileinfo، ولا تريد استخدام mime_content_type، فستكون خياراتك محدودة.

على الأرجح ستحتاج إلى إجراء بحث بناءً على امتداد الملف.قام mime_content_type بشيء أكثر ذكاءً وبحث بالفعل عن بيانات خاصة في الملف لتحديد نوع mime.

نصائح أخرى

ال getID3 () تعد المكتبة خيارًا سريعًا وسهلاً للعمل في معظم الأوقات.تم تسميتها في الأصل لمشروع للحصول على بيانات MP3 ID3، وتقوم المكتبة بعمل أكثر من ذلك بكثير وهي ملائمة تمامًا لجميع أنواع مهام البيانات الوصفية الشائعة أو الفردية للملفات.

لقد استخدمته للحصول على أنواع ملفات MIME لأدوات الصور والفيديو عبر الإنترنت.في جميع الاختبارات التي أجريتها، لم أر getID3 يخطئ في نوع MIME.

لقد استخدمته أيضًا للتحقق مما إذا كانت مقاطع فيديو QuickTime تحتوي على تلميحات للبث.وأذكر هذا كمثال على التنوع.

الخيار الثاني الذي يستغرق وقتًا أطول هو تشغيل مدقق نوع MIME الخاص بك كما هو مقترح بالفعل.إذا كان لديك ملف MIME السحري، فيمكنك الذهاب إلى ما هو أبعد قليلاً من البحث في امتداد الملف من خلال مقارنة أول n بايت من بيانات الملف مقابل أول n بايت إلى جدول البحث من نوع MIME المشتق من ملف MIME السحري.

سيحتوي ملف MIME السحري النموذجي على ما يزيد عن 500 مجموعة من أنواع MIME مما قد يؤدي إلى مقارنات بطيئة (يجب إجراء الكثير من عمليات التحقق).سيساعدك ترميز عمليات التحقق من نوع MIME العشرة الأكثر شيوعًا في الحل الذي تم تسجيله في منزلك في هذا الأمر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top