انتقل إلى محتوى الدرس

Inspecting Paths with pathinfo تحليل المسارات والامتدادات بـ pathinfo و realpath

اقرأ وصدّر جداول CSV عبر fgetcsv وfputcsv، وأدر المجلدات والمسارات بأمان باستخدام scandir وglob وpathinfo في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لا تقسم مسارات الملفات يدوياً عبر 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";