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

چگونه تعداد فایل های پوشه را با 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 پیدا کنیم ؟

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us