Avatar ·

كيفية الحصول على امتداد الملف في PHP؟ طرق موثوقة والمزالق

مرحباً بالجميع! أنا مطور PHP مبتدئ، واجهت مهمة تبدو بسيطة: أحتاج إلى الحصول على امتداد الملف من اسمه. لدي متغير، مثلاً `$filename = "document.pdf"` أو `$path = "/var/www/uploads/image.jpg"`. أحتاج إلى استخراج "pdf" أو "jpg". جربت أبسط طريقة — explode مع النقطة: ```php $filename = "document.pdf"; $parts = explode('.', $filename); $ext = end($parts); echo $ext; // pdf ``` ولكن ظهرت مشاكل على الفور. أولاً، ماذا لو كان اسم الملف يحتوي على نقاط متعددة، مثلاً `my.file.name.txt`؟ الكود الخاص بي سيعطي "txt"، وهو صحيح ظاهرياً، لكن ربما ليس هذا ما نحتاجه؟ ثانياً، ماذا لو كان مساراً كاملاً وليس مجرد اسم؟ مثلاً `/home/user/file.tar.gz` — explode سيقسم كل شيء حسب الشرطات والنقاط، وقد تكون النتيجة غير متوقعة. ثالثاً، ماذا نفعل مع الملفات بدون امتداد، مثل `Makefile` أو `.htaccess`؟ الكود الخاص بي سيعيد "htaccess"، لكن هذا ليس امتداداً بالمعنى التقليدي. سمعت أن هناك دالة مدمجة