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

Listing Files with scandir and glob استعراض الملفات ونقلها بـ scandir و glob و rename

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

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

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

استعرض محتويات المجلدات إما بجلب جميع المدخلات عبر scandir() أو بمطابقة أنماط الامتدادات والأسماء مباشرة عبر glob().

  • تُرجع scandir($dir) مصفوفة بجميع الأسماء داخل المجلد بما فيها مدخلا المجلد الحالي والأب "." و"..".
  • استبعد مدخلي النقطة والنقطتين بنظافة عبر التعبير array_diff(scandir($dir), [".", ".."]).
  • تُرجع الدالة glob("$dir/*.csv") المسارات المطابقة لنمط البحث فقط وتتجاهل "." و".." تلقائياً.

تطابق glob("$dir/*.csv") الملف a.csv فقط، بينما تُرجع scandir($dir) بعد استبعاد ["." , ".."] الملفين معاً.

PHP
<?php
$dir = sys_get_temp_dir() . '/ct_scan_' . getmypid();
mkdir($dir, 0755, true);
file_put_contents("$dir/a.csv", "1");
file_put_contents("$dir/b.txt", "2");
$csvs = glob("$dir/*.csv");
$all = array_values(array_diff(scandir($dir), ['.', '..']));
echo "CSV count: " . count($csvs) . " | All: " . implode(',', $all) . "\n";
unlink("$dir/a.csv");
unlink("$dir/b.txt");
rmdir($dir);