شرح صفوف ومحتوى الفقرة
استعرض محتويات المجلدات إما بجلب جميع المدخلات عبر 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);