شرح صفوف ومحتوى الفقرة
لا تقسم مسارات الملفات يدوياً عبر explode(".", $path)؛ بل اعتمد على الدوال القياسية pathinfo() وbasename() وdirname() وrealpath().
- تُرجع
pathinfo($path)مصفوفة ترابطية بالمفاتيحdirnameوbasenameوextensionوfilename. - مرّر ثابتاً محدداً مثل
PATHINFO_EXTENSIONأوPATHINFO_FILENAMEلاستخراج عنصر نصي واحد مباشرة. - تحول الدالة
realpath($path)المسارات النسبية (../) والروابط الرمزية إلى مسار مطلق حقيقي، أو تُرجعfalseإذا كان الملف غير موجود.
رغم وجود عدة نقاط في الاسم q4.sales.csv، تفصل pathinfo() اسم الملف "q4.sales" عن الامتداد الأخير "csv" بدقة.
PHP
<?php
$path = '/var/www/storage/reports/q4.sales.csv';
$info = pathinfo($path);
$ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
$realDir = realpath(__DIR__);
echo $info['filename'] . " | ext: $ext | real: " . ($realDir !== false ? 'ok' : 'no') . "\n";