کار با پوشه ها در PHP

در این آموزش موارد زیر را برسی خواهیم کرد:

  • مرجع توابع کار با پوشه ها در PHP
  • تابع ( ) chdir
  • تابع ( ) chroot
  • تابع ( ) dir
  • تابع ( ) closedir
  • تابع ( ) getcwd
  • تابع ( ) opendir
  • تابع ( ) readdir
  • تابع ( ) scandir

توابع کار با پوشه ها در PHP :
به وسیله توابع کار با پوشه ها در PHP ، می توانید اطلاعات لازم درباره پوشه های روی سرورتان و محتویات درون آنها را بدست آورده و در خروجی نمایش دهید.
برای مثال می توانید لیست پوشه ها و یا فایل های موجود آنها را در خروجی نمایش داده و یا بین پوشه ها حرکت کنید.

آیا نصب برنامه ای لازم است ؟
تمامی توابع کار با پوشه ها جزء هسته اصلی PHP بوده و به صورت پیش فرض نصب می باشند . بنابراین برای استفاده از آنها نیاز به نصب برنامه ای خاص یا تغییر تنظمیاتی در سرور خود ندارید.

لیست توابع کار با پوشه ها در PHP :
chdir ( ) به وسیله این تابع می توانید پوشه جاری که درون آن هستید را عوض کنید .
chroot ( ) به وسیله این تابع می توانید پوشه اصلی ( root ) پروسه جاری خود را عوض کنید .
dir ( ) این تابع برای باز کردن و دسترسی به یک پوشه در سرور استفاده می شود .
closedir ( ) این تابع پوشه جاری و دسترسی به آن را می بندد .
getcwd ( ) این تابع آدرس و نام پوشه جاری که درون آن هستید را نمایش می دهد .
opendir ( ) این تابع ، پوشه ای که نام یا آدرس آن را برایش تعیین کرده اید ، باز می کند .
readdir ( ) این تابع می تواند فایل ها و محتویات درون یک پوشه را که قبلا توسط تابع ( ) opendir باز شده است را خوانده و بر می گرداند .
scandir ( ) این تابع لیست فایل ها و محتویات درون یک پوشه یا مسیر تعیین شده برای آن را به صورت یک آرایه بر می گرداند .
تابع ( ) chdir در PHP :
تابع ( ) chdir ، پوشه جاری را به پوشه ای که نام آن را برایش تعیین کرده اید ، تغییر می دهد .
برای مثال فرض کنید که در حال حاضر در پوشه main هستید . می خواهید دستوری بنویسید که برنامه به پوشه images برود . در این حالت از تابع ( ) chdir استفاده می شود .
نکته : تابع ( ) chdir در صورت موفقیت برای جا به جایی پوشه به پوشه مورد نظر ، مقدار True را به صفحه بر می گرداند . در غیر مقدار ارسالی آن False خواهد بود .
شکل کلی تعریف و استفاده از تابع ( ) chdir در PHP به صورت زیر است :

 chdir ( directory ) ;

directory: این پارامتر تعیین کننده نام یا آدرس پوشه ای است که می خواهید برنامه از پوشه جاری به آن منتقل شود .
استفاده از این پارامتر اجباری است .

مثال : در مثال زیر نحوه استفاده از تابع ( ) chdir را در عمل نمایش داده ایم . برنامه ابتدا در پوشه main قرار دارد ، سپس با استفاده از تابع ( ) chdir ، پوشه جاری به پوشه images تغییر می یابد :

<?php
// به وسیله این دستور پوشه جاری که برنامه در آن است را نمایش داده ایم
echo getcwd();
echo "<br />";
// توسط این دستور پوشه را به پوشه مورد نظر منتقل کرده ایم
chdir ( " images " ) ;
echo "<br />";
// مجددا پوشه جاری را نمایش داده ایم 
echo getcwd();
?>

خروجی:
C:\tik4\main
C:\tik4\main\images


تابع ( ) chroot در PHP :
تابع ( ) chroot ، پوشه اصلی ( root ) جاری پروسه را به پوشه تعیین شده برای آن تغییر می دهد.
برای مثال فرض کنید که در یک وب سایت PHP ، در حال حاضر پوشه main پوشه اصلی است . شما می خواهید کدی طراحی نمایید تا پوشه اصلی را به پوشه default تغییر دهید . برای این منظور باید از تابع ( ) chroot استفاده نمایید.

نکات مهم درباره تابع ( ) chroot :
نکته ۱: این تابع در صورت موفقیت در تعویض پوشه اصلی به پوشه مورد نظر ، مقدار True را به صفحه بر می گرداند . در غیر اینصورت مقدار ارسالی False خواهد بود .
نکته ۲: این تابع بر روی پلتفرم های ویندوزی کار نمی کند .
شکل کلی تعریف و استفاده از تابع ( ) chroot در PHP به صورت زیر است :

 chroot ( directory ) ;

directory: این پارامتر تعیین کننده نام یا آدرس پوشه ای است که می خواهید پوشه اصلی برنامه از پوشه جاری به آن منتقل شود.
استفاده از این پارامتر اجباری است.


تابع ( ) dir در PHP :
تابع ( ) dir ، پوشه تعیین شده برای آن را باز کرده و نتیجه را به صورت یک object به صفحه ارسال می کند . object ارسالی دارای ۳ متد ( ) read ( ) ، rewind و ( ) close است که از آنها می توان برای کار با اطلاعات خروجی تابع استفاده کرد . نحوه کار با این متدها در مثال عملی نمایش داده شده است.
نکته : تابع ( ) dir ، در صورتی که موفق شود پوشه تعیین شده برای آن را باز کند ، لیست محتویات درونی پوشه را به صورت یک آرایه بر می گرداند.
اما در صورتی که پوشه باز نشده و یا آن را پیدا نکند ، مقدار False را به همراه یک error به صفحه بر می گرداند . شما می توانید پیام error ارسالی را با استفاده از یک علامت @ در مقابل نام تابع مخفی نمایید.

شکل کلی تعریف و استفاده از تابع ( ) dir در PHP به صورت زیر است:

dir ( directory );

directory: این پارامتر تعیین کننده نام یا آدرس پوشه ای است که می خواهید برنامه آن را باز کرده و بخواند .
استفاده از این پارامتر اجباری است .

مثال های عملی :
در مثال های زیر نحوه کار با تابع ( ) dir را در عمل به شما نمایش داده ایم .
مثال ۱: در مثال زیر با استفاده از تابع ( ) dir ، پوشه images را باز کرده ایم . سپس با استفاده از متدهای object ارسالی آن به صغحه لیست آیتم های موجود در آن را در خروجی نمایش داده ایم :

<?php
// به وسیله این دستور پوشه مورد نظر را باز کرده ، خوانده و در یک آرایه ذخیره نموده ایم
$ dir = dir ( " images " ) ;
// توسط این دستور آیتم های موجود در پوشه را در خروجی نمایش داده ایم 
while ( ( $ file = $dir -> read ( ) ) !== false )
{
echo "filename: " . $file . "<br />";
}
// در پایان نیز پوشه باز شده را بسته ایم 
$dir -> close ( ) ;
?>

خروجی:

filename: .
filename: ..
filename: ASP_Net.gif
filename: HTML.gif
filename: PHP.gif
مثال ۲: در مثال دوم مثال قبل را باز نویسی کرده ایم ، با این تفاوت که در ابتدای نام تابع ( ) dir یک علامت @ قرار داده ایم . قرار دادن این علامت باعث می شود تا error احتمالی در صورت باز نشدن پوشه مورد نظر به هر دلیل ، نمایش داده نشود:

<?php
// به وسیله این دستور پوشه مورد نظر را باز کرده ، خوانده و در یک آرایه ذخیره نموده ایم
$ dir =@ dir ( " images " ) ;
// توسط این دستور آیتم های موجود در پوشه را در خروجی نمایش داده ایم 
while ( ( $ file = $dir -> read ( ) ) !== false )
{
echo "filename: " . $file . "<br />";
}
// در پایان نیز پوشه باز شده را بسته ایم 
$dir -> close ( ) ;
?>


تابع ( ) closedir در PHP :

تابع ( ) closedir ، پوشه ای که قبلا توسط تابع ( ) opendir باز شده و برنامه به آن دسترسی دارد ، را می بندد.
برای بسته شدن پوشه مورد نظر ، باید نام آن پوشه را به صورت یک پارامتر به تابع ( ) closedir ارسال نمایید.
شکل کلی تعریف و استفاده از تابع ( ) closedir در PHP به صورت زیر است:

 closedir ( directory );

directory: این پارامتر تعیین کننده نام یا آدرس پوشه ای است که می خواهید برنامه آن را ببندد .

استفاده از این پارامتر اجباری است .
مثال: در مثال زیر با استفاده از تابع ( ) closedir ، پوشه ای را که قبلا برنامه باز کرده و به آن دسترسی داشته را بسته ایم : در آن را در خروجی نمایش داده ایم:

<?php
// به وسیله این دستور پوشه مورد نظر را باز کرده ، خوانده و در یک آرایه ذخیره نموده ایم
$ dir = opendir ( " image " ) ;
// توسط این دستور آیتم های موجود در پوشه را در خروجی نمایش داده ایم 
while ( ( $ file = readdir ( $dir ) ) !== false )
{
echo "filename: " . $file . "<br />";
}
// در پایان نیز پوشه باز شده را بسته ایم 
closedir ( $dir ) ;
?>

خروجی:

filename: .
filename: ..
filename: ASP_Net.gif
filename: HTML.gif
filename: PHP.gif


تابع ( ) getcwd در PHP :
تابع ( ) getcwd ، نام و آدرس کامل پوشه ای که برنامه در آن لحظه در آن قرار دارد را به صفحه بر می گرداند.
تابع ( ) getcwd در صورت موفقیت در خواندن نام و آدرس پوشه جاری ، مقدار آن را به صفحه بر می گرداند . در غیر اینصورت مقدار برگشتی آن False خواهد بود.
شکل کلی تعریف و استفاده از تابع ( ) getcwd در PHP به صورت زیر است:

 getcwd ( );

مثال: در مثال زیر با استفاده از تابع ( ) getcwd ، پوشه ای که برنامه در حال حاضر در آن قرار دارد ، را در خروجی نمایش داده ایم :
<?php
echo getcwd( ); 
?>

خروجی:

C:\tik4\main


تابع ( ) opendir در PHP:

تابع ( ) opendir ، پوشه تعیین شده برای آن را باز کرده و لیست محتویات درونش را برای استفاده با متدهای ( ) readdir و ( ) closedir به صفحه بر می گرداند . به وسیله متد ( ) readdir می توانید محتویات درون پوشه را خوانده و در خروجی نمایش دهید . همچنین به وسیله متد ( ) closedir ، در پایان کار پوشه را می بندید .
نکته : تابع ( ) opendir ، در صورت موفقیت در باز کردن پوشه مورد نظر لیست محتویاتش را به صفحه برگشتانده و در صورتی که به هر دلیل موفق به باز کردن پوشه نشده و یا آن را پیدا نکند ، مقدار False یک error را به صفحه بر می گرداند .
شما می توانید با قرار دادن علامت @ در مقایل نام تابع ، error احتمالی آن را مخفی سازید.
شکل کلی تعریف و استفاده از تابع ( ) opendir در PHP به صورت زیر است :

 opendir ( directory );

directory: این پارامتر تعیین کننده نام یا آدرس پوشه ای است که می خواهید برنامه آن را باز کرده و بخواند .
استفاده از این پارامتر اجباری است .

مثال های عملی :

در مثال های زیر نحوه کار با تابع ( ) opendir را در عمل به شما نمایش داده ایم.
مثال ۱: در مثال زیر با استفاده از تابع ( ) opendir ، پوشه images را باز کرده ایم . سپس با استفاده از متدهای object ارسالی آن به صفحه لیست آیتم های موجود در آن را در خروجی نمایش داده ایم :

<?php
// به وسیله این دستور پوشه مورد نظر را باز کرده ، خوانده و در یک آرایه ذخیره نموده ایم
$ dir = opendir ( " images " ) ;
// توسط این دستور آیتم های موجود در پوشه را در خروجی نمایش داده ایم 
while ( ($file = readdir ( $dir ) ) !== false )
{
echo "filename: " . $file . "<br />";
}
// در پایان نیز پوشه باز شده را بسته ایم 
closedir ( $dir ) ;
?>

خروجی:

filename: .
filename: ..
filename: ASP_Net.gif
filename: HTML.gif
filename: PHP.gif


تابع ( ) readdir در PHP :
تابع ( ) readdir ، آیتم های موجود در پوشه ای که قبلا توسط متد ( ) opendir باز شده را خوانده و به عنوان خروجی به صفحه بر می گرداند.
نکته : تابع ( ) readdir در صورت موفقیت در خواندن پوشه ، نام آیتم های موجود در پوشه را به عنوان خروجی بر می گرداند . اما اگر به هر دلیلی نتواند پوشه را بخواند ، مقدار برگشتی آن False خواهد بود.
شکل کلی تعریف و استفاده از تابع ( ) readdir در PHP به صورت زیر است:

 readdir ( dir_stream );

dir_stream: این پارامتر تعیین کننده نام متغیر آرایه ای است که لیست آیتم های موجود در پوشه را که قبلا توسط تابع ( ) opendir درون آن ریخته اید ، است . نحوه استفاده از این پارامتر در مثال نمایش داده شده است .

استفاده از این پارامتر اجباری است.
مثال های عملی :

در مثال های زیر نحوه کار با تابع ( ) readdir را در عمل به شما نمایش داده ایم .
مثال ۱: در مثال زیر با استفاده از تابع ( ) opendir ، پوشه images را باز کرده ایم . سپس با استفاده از متدهای object ارسالی آن به صفحه لیست آیتم های موجود در آن را به وسیله تابع ( ) readdir یکی یکی خوانده و در خروجی نمایش داده ایم :

<?php
// به وسیله این دستور پوشه مورد نظر را باز کرده ، خوانده و در یک آرایه ذخیره نموده ایم
$ dir = opendir ( " images " ) ;
// توسط این دستور آیتم های موجود در پوشه را در خروجی نمایش داده ایم 
while ( ($file = readdir ( $dir ) ) !== false )
{
echo "filename: " . $file . "<br />";
}
// در پایان نیز پوشه باز شده را بسته ایم 
closedir ( $dir ) ;
?>

خروجی:

filename: .
filename: ..
filename: ASP_Net.gif
filename: HTML.gif
filename: PHP.gif


تابع ( ) scandir در PHP :

تابع ( ) scandir ، لیست فایل ها و پوشه های موجود در یک مسیر خاص را به صورت یک آرایه بر می گرداند .
نکته : خروجی این تابع در صورت موفقیت در خواندن پوشه آرایه ای از لیست فایل ها و پوشه ها و در صورت عدم موفقیت مقدار False به همراه یک پیام هشدار خواهد بود .
شکل کلی تعریف و استفاده از تابع ( ) scandir در PHP به صورت زیر است :

 scandir ( directory , sort );

directory: این پارامتر تعیین کننده نام یا آدرس پوشه ای است که می خواهید برنامه آن را باز کرده لیست فایل های موجود در آن را در خروجی برگرداند .
استفاده از این پارامتر اجباری است.
sort: این پارامتر ترتیب نشان دادن آیتم های آرایه خروجی تابع را مشخص می کند . به صورت پیش فرض این آرایه از عضو ۰ شروع شده و رو به افزایش می رود . اگر مقدار sort را روی ۱ تنظیم نمایید ، آرایه از انتها به صورت کاهشی نمایش داده خواهد شد .
استفاده از این پارامتر اختیاری است.
مثال های عملی :
در مثال های زیر نحوه کار با تابع ( ) ۸ را در عمل به شما نمایش داده ایم .
مثال ۱: در مثال زیر با استفاده از تابع ( ) ۸ ، فایل ها و اجزای پوشه images را به صورت یک آرایه در خروجی نمایش داده ایم . در مثال اول ، ترتیب آرایه به صورت پیش فرض و از کم به زیاد می باشد :
<?php
print_r ( scandir ( " images " ) ); 
?>

خروجی:

Array (
[۰] => .
[۱] => ..
[۲] => ASP.jpg
[۳] => PHP.jpg
[۴] => HTML.gif
)
مثال ۲: در مثال دوم ، کد مثال ۱ را باز نویسی کرده ایم با این تفاوت که با مقدار دهی پارامتر sort به ۱ ، باعث شده ایم تا ترتیب نمایش آرایه برعکس شده و از انتها به ابتدا باشد :

<?php
print_r ( scandir ( " images " , 1 ) ); 
?>

خروجی:

Array (
[۴] => HTML.gif
[۳] => PHP.jpg
[۲] => ASP.jpg
[۱] => ..
[۰] => .
)

به این مقاله چه امتیازی می‌دهید؟
5/5 - (1 امتیاز)

دیدگاه خود را بیان کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

Shopping cart
There are no products in the cart!
question