كيفية الحصول على امتداد الملف في 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"، لكن هذا ليس امتداداً بالمعنى التقليدي.
سمعت أن هناك دالة مدمجة