چگونه تعداد فایل های پوشه را با PHP پیدا کنیم ؟

چگونه تعداد فایل های پوشه را با PHP پیدا کنیم ؟ – PHP شامل تعداد زیادی توابع مانند count() ، iterator_count() ، glob() ، openddir() ، readdir() ، scandir و کلاس FilesystemIterator برای شمارش تعداد پرونده ها در یک پوشه است.
تابع count : برای شمارش تمام عناصر در یک آرایه یا هر شی قابل شمارش استفاده می شود. این تابع از COUNT_RECURSIVE به عنوان یک حالت برای شمارش بازگشتی آرایه ای که برای شمارش همه عناصر یک آرایه چند بعدی مفید است استفاده می کند.
Syntax :
int count( mixed $array_or_countable, int $mode = COUNT_NORMAL )
تابع glob : یک تابع Filesystem است که طبق الگوی مطابق با قوانین استفاده شده توسط تابع libc glob ، همه الگو ها با نام های احتمالی را جستجو می کند.
Syntax:
glob( string $pattern, int $flags = 0 )
برنامه 1: این برنامه از تابع glob و count برای شمارش کلیه پرونده ها در پوشه استفاده می کند.
<?php // Set the current working directory $directory = getcwd()."/"; // Initialize filecount variavle $filecount = 0; $files2 = glob( $directory ."*" ); if( $files2 ) { $filecount = count($files2); } echo $filecount . "files "; ?>
خروجی:
20 files
تابع openddir : از تابع openddir برای باز کردن دسته دایرکتوری استفاده می شود. مسیر دایرکتوری که باید باز شود به عنوان پارامتر به تابع opendir فرستاده می شود و در صورت موفق آمیز بودن آن فایل پوینتر برمی گرداند در غیر اینصورت False .
Syntax :
opendir( string $path, resource $context )
تابع readdir : یک تابع دایرکتوری است که ورودی های مربوط به دسته دایرکتوری را می خواند و به ترتیب ذخیره شده توسط فایل سیستم برگردانده می شود .
Syntax :
readdir( resource $dir_handle )
برنامه 2: در این برنامه از تابع openddir و readdir برای شمارش کلیه پرونده ها در پوشه استفاده می شود.
<?php // Set the current working directory $dir = getcwd(); // Initialize the counter variable to 0 $i = 0; if( $handle = opendir($dir) ) { while( ($file = readdir($handle)) !== false ) { if( !in_array($file, array('.', '..')) && !is_dir($dir.$file)) $i++; } } // Display result echo "$i files"; ?>
خروجی:
20 files
تابع scandir : این تابع تمامی فایل و پوشه ها را بر اساس مسیر داده شده برمی گرداند .
Syntax :
scandir( string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, resource $context )
برنامه 3: این برنامه از scandir و count برای شمارش کلیه پرونده ها در پوشه مورد نظر استفاده می کند.
<?php // Set the current working directory $directory = getcwd()."/"; // Returns array of files $files1 = scandir($directory); // Count number of files and store them to variable $num_files = count($files1) - 2; echo $num_files . " files"; ?>
خروجی:
20 files
کلاس FilesystemIterator : با متد construct__ که در این کلاس وجود دارد می توانید یک آبجکت تکرار شونده از فایل های سیستمی دریافت کنید .
Syntax :
FilesystemIterator::__construct( string $path, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS )
تابع iterator_count : این تابع SPL است که برای شمارش عناصر تکرار شونده مورد استفاده قرار می گیرد.
Syntax :
int iterator_count ($iterator)
برنامه 4 : در این برنامه از FilesystemIterator و iterator_count استفاده می شود تا تمامی پرونده های موجود در پوشه را بشمارد .
<?php $fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS); printf("%d files", iterator_count($fi)); ?>
خروجی:
20 files
چگونه تعداد فایل های پوشه را با PHP پیدا کنیم ؟
ارسال نظر