کد PHP نمایش فایل های درون یک پوشه | نمایش پوشه در کد PHP

در مقاله‌ی کد php نمایش فایل‌های درون یک پوشه قرار است کدی بنویسیم تا بتوانیم محتوای یک فولدر که خود دارای فایل‌های مختلف و فولدر (پوشه) است را با ظاهر مناسب به نمایش بگذاریم. شاید مشابه این پروژه کوچک را در نمایش پوشه‌های هاست خود مشاهده کرده باشید. در ادامه‌ی مقاله همراه ما باشید.

کدهای نمایش فایل‌های درون پوشه


<!DOCTYPE html>
<html lang="en">
<head>
      <title>7Learn.com > List Of Files In a folder</title>
      <style type="text/css"> 
        body, table { 
          font-family: tahoma; font-size: 14px; 
        } 
        ul { 
            list-style: none; line-height: 22px; 
        } 
        li.file { 
            color: #2f6d13; background: transparent url("image/file.png") no-repeat left 3px; 
            padding-left: 24px; 
        } 
        li.folder { 
            color: #e6981c; background: transparent url("image/folder.png") no-repeat left 3px;
            padding-left: 24px; 
        } 
        </style>
   </head>
   <body>
      <?php 
        function getFileList($folderName, $fileType = "") { 
            if (substr($folderName, strlen($folderName) - 1) != "/") { 
                $folderName .= '/'; 
            } 
            echo '<h3>List of ' . $fileType . ' files in folder : <span style="color:brown">' . $folderName . '</span></h3>'; 
            echo '<ul>'; 
            foreach (glob($folderName . '*' . $fileType) as $filename) {
                if (is_dir($filename)) {
                    $type = 'folder'; 
                } else { 
                    $type = 'file'; 
                } 
                echo '<li class="' . $type . '">' . str_replace($folderName, '', $filename) . '</li>'; 
            } 
            echo '</ul>'; 
        } 
            // call the function getFileList('files'); // list all files getFileList('files','.png'); // list only png files 
        ?> 
   </body>
</html>

در قطعه کد بالا، ما کل فایل html را برای شما گذاشته‌ایم که می‌توانید آن را در یک فایل با فرمت php ذخیره و اجرا کنید. در کد فوق تابع getFileList تعریف شده است که دو پارامتر دریافت می‌کند. اولی نام و یا آدرس فولدری (پوشه) که می‌خواهید فایل‌های درونش لیست شوند و با دومی هم فرمت فایل‌های لیست شده را می‌توانید انتخاب کنید.

مثلا اگر می‌خواهید کل فایل‌های درون فولدر files نمایش داده شوند تابع را به این صورت فراخوانی می‌کنید:

getFileList('files');

و اگر بخواهید فقط فایل‌هایی با فرمت jpg لیست شوند به این شکل فراخوانی می‌کنید:

getFileList('files','.jpg');

به این ترتیب می‌توانید تعیین کنید که فقط فایل‌هایی با فرمت خاص لیست شوند.

همان‌طور که قابل مشاهده است لیست فایل‌ها در ظاهری زیبا و با تفکیک رنگ و ظاهر فایل‌ها و فولدر‌ها، نمایش داده می‌شود.

جمع‌بندی:

 در مقاله‌ی کد php نمایش فایل‌های درون یک پوشه به صورت خیلی ساده و مفید آموختیم که چگونه می‌توانیم فایل‌ها و پوشه‌های درون یک فولدر را با ظاهری مناسب به نمایش بگذاریم. برای این که یک ظاهر دلنشین‌تر داشته باشید، می‌توانید برای هر نوع فایل یک icon متناسب برای آن فایل قرار دهید. برای مثال می‌توانید برای فایل‌هایی با پسوند png یک icon تصویر را قرار دهید تا هم تشخیص ساده‌تری داشته باشد و هم ظاهری زیباتر.

اگر به یادگیری بیشتر در زمینه‌ی PHP علاقه داری، با شرکت در دوره‌ی آموزشی متخصص PHP در کمتر از یک سال به یک متخصص PHP تبدیل می‌شوی که آماده‌ی استخدام، دریافت پروژه، کسب درآمد و یادگیری مباحثی مثل لاراول هستی.

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۶۹ دیدگاه
حسن کرمانی ۱۴ تیر ۱۳۹۷، ۱۱:۳۹
مرسی از اطلاعات خوبتون . فقط اگر بخواهیم روی اسامی فولدر و فایل های کلیک کنیم و باز شود تا محتویات داخل آن را مشاهده کنیم چه کدی را باید به محتویات بالا اضافه کنیم ؟ با تشکر
MASOUD HOSSEINY ۰۷ تیر ۱۳۹۷، ۱۵:۰۹
درود
چطور میتونم عکس های داخل یک فایل رو با php بگیرم و روی اون ها لوگو بچسبونم

برای انجام این کار روی یک عکس از WideImage
استفاده میکنم

برای اینکه بتونم این کار رو بر روی تعداد فایل های زیادی انجام بدم چه کاری باید انجام بدم

پیشاپیش از پاسخ شما سپاسگزارم
محسن ۲۸ مرداد ۱۳۹۴، ۰۸:۲۶
سلام خدمت اساتید محترم ، اگر این لیست رو بخوایم بر اساس تاریخ مرتب کنیم چه کدی باید بزنیم ؟
کیوان علی محمدی ۲۸ مرداد ۱۳۹۴، ۱۸:۲۵
در php میشه با تابع filectime زمان تغییر فایل رو گرفت (در سرور ویندوز زمان ایجاد فایل و در سرور لینوکس هم زمان تغییر رو میده که میشه همون زمان ایجاد) میتونی لیست فایل ها رو بریزی داخل آرایه همراه با زمان ایجادشون و بعدش آرایه رو مرتب کنی و در نهایت چاپشون کنی.
Omid Rajaei ۲۱ مرداد ۱۳۹۴، ۱۸:۰۳
سلام
1- اگر بخوایم فایل های درون پوشه ای که فایل php قرار داره رو نمایش دهیم باید چطوری تعریف بشه ؟
تمام فایل های موجود در پوشه به غیر از خود فایل PHP!
2- برای اینکه با توجه به فرمت فایل، تصویر (ایکون کناری) رو انتخاب کنه باید به چه صورتی عمل کرد ؟
تشکر
لقمان آوند ۲۳ مرداد ۱۳۹۴، ۰۲:۰۲
1- مقدار پارامتر اول (مسیر) رو / بزارید. باید کمی کد رو تغیر بدید و مثلا چک کنید اگه پسوند فایل php بود نشونش نده.
2- می تونید فرمت فایل رو استخراج کنید و به عنوان یه کلاس css تگ html نمایش دهنده اون فایل اضافه کنید و بعد کلاس css مربوطه رو تعریف کنید و تصویر بزارید براش.
این کار رو تو دوره php انجام دادیم.
مهدی ۳۰ خرداد ۱۳۹۴، ۰۵:۱۵
سلام نمیشه یک کاری کرد که وقتی رو اسم فایل کلیک میکنن لینک همون فایل بیاد
یا به عبارت دیگه هر فایل لینک بشه
لقمان آوند ۳۰ خرداد ۱۳۹۴، ۲۳:۱۵
این مورد رو توی دوره php پیاده سازی کردیم. یه کمی باید برنامه نویسی بلد باشید و با توابع php آشنا باشید .
ashmes ۲۳ اسفند ۱۳۹۳، ۲۰:۳۴
سلام میتونید اسکریپتی رو در اختیار بنده قرار بدید بسیار دنبالش گشتم و پیدا نکردم یک اسکریپت میخواستم که از طریق url فایل های درون اون سایت رو نشون بده حالا از فایل های php تا jpg و فولدر ها و ....
واقعا نیاز دارم ممنون میشم . به ایمیل خبر بدید لطفا
لقمان آوند ۲۳ اسفند ۱۳۹۳، ۲۱:۵۶
سلام
همیشه نمی تونید اینکارو کنید .
فایلهای php رو که نمیتونید سورسشون رو بگیرید از url و اجازشو ندارید . فولدر ها رو هم معمولا سایتها می بندند. فقط تصاویر، ویدیو ها و ... هست که اگه آدرسشون رو داشته باشید می تونید دانلودشون کنید .
خرید گوشی دست دوم ۱۴ بهمن ۱۳۹۳، ۱۳:۱۹
با تشکر و خسته نباشيد واقعا سايت خيلي خوب و مفيدي داريد موفق و پيروز باشيد
ernika ۰۳ آبان ۱۳۹۳، ۰۸:۵۶
سلام با تشکر از سایت خیلی خوبتون اگه بخواهیم فایل ها قابلیت دانلود شدن هم داشته باشن باید چیکار کنیم؟
لقمان آوند ۰۳ آبان ۱۳۹۳، ۰۹:۱۴
تو خط 49 این کد باید به جای چاپ نام فایل ، لینک اونو چاپ کنید !
Erfan Moharramkhani ۲۲ شهریور ۱۳۹۳، ۰۲:۴۹
خوب بود فقط یک سوال این که اگر بخواهیم مثلا فایل از یک آدرس دیگر نمایش داده شود مثلا "www.domain.com/folder" باید چکار کنم؟
لقمان آوند ۲۹ شهریور ۱۳۹۳، ۱۰:۱۱
آدرس رو با پارامتر get به صفحهارسال کنید و بدید به تابع .
در دوره ی آموزشی PHP سایت، این فایل منیجر رو با قابلیت های اضافه تکمیل کردیم .
خدمات پرداخت انلاین دانشجویی ۲۰ خرداد ۱۳۹۳، ۱۱:۵۸
خیلی عالی بود ممنون از سایت خوبتون
طراحی وب سایت ۰۷ خرداد ۱۳۹۳، ۱۲:۰۶
خیلی خوب بود مرسی
محمد رضا ۰۵ خرداد ۱۳۹۳، ۰۱:۰۵
سلام کد یا اسکریپتی هست که به وسیله اون لیست فایل های درون یک پوشه از یه هاست دیگر را نمایش دهد ؟
چند وقته دنبال این کد یا اسکریپت هستم

ممنون - منتظر پاسخ کارشناسان عزیز....
وحید صالحی ۰۵ خرداد ۱۳۹۳، ۱۱:۴۷
دوست عزیز سوالتون رو در انجمن مطرح کنید...
شیرین ۳۱ اردیبهشت ۱۳۹۳، ۱۶:۳۴
سلام آیا میشه این کار رو با جاوااسکریت انجام داد؟ خیلی دنبالش گشتم لطفا اگه کسی میدونه راهنمایی کنه
سپاس
کیوان علی محمدی ۰۱ خرداد ۱۳۹۳، ۱۰:۰۸
جاوا اسکریپت دسترسی به فایل های سیستم نداره و نمیتونه این کارو انجام بده.
امیر ۲۶ اردیبهشت ۱۳۹۳، ۰۹:۵۹
سلام
چطوری میشه اسامی فایل ها ی یک پوشه رو تک تک داخل یک متغیر یا آرایه ذخیره کرد؟
لقمان آوند ۲۶ اردیبهشت ۱۳۹۳، ۱۲:۲۷
از تابع scandir استفاده کن .
تور آنتالیا ۱۳ اردیبهشت ۱۳۹۳، ۱۰:۱۵
ممنون بایت مطالب مفید و خوبی که می زارید پاینده باشید :grin:
تور آنتالیا ۰۸ اردیبهشت ۱۳۹۳، ۰۹:۵۴
عالی بود دستتون درد نکنه
امیر ۰۹ فروردین ۱۳۹۳، ۱۸:۵۹
خیلی ممنون عالی بود
تشک بادی ۲۹ بهمن ۱۳۹۲، ۱۴:۰۴
خیلی ممنون از مطالب فوق العاده تون
محسن ۰۳ بهمن ۱۳۹۲، ۱۶:۴۹
میشه بگین اگه بخوام لیست فایل ها رو به صورت لینک دانلود نشون بده باید چیکار کنم؟
کیوان علی محمدی ۰۴ بهمن ۱۳۹۲، ۱۱:۱۴
می تونید از تگ a براشون استفاده کنید و برای خاصیت href هم آدرس فایل رو قرار بدید.
morteza ۲۴ دی ۱۳۹۲، ۱۵:۴۸
سلام حالا اگه بحواییم که این روی این فایل کلیک شه و کد های صفحه نشئن داده شه و بعد از تغیر ذخیره شه چی ممنون میشم این هم بگید
کیوان علی محمدی ۰۴ بهمن ۱۳۹۲، ۱۱:۱۹
چیزی که میخواین سوا از این کد هستش،ولی میشه با ای جکس به راحتی پیاده سازی بشه،شما با درخاوست ای جکس آدرس فایل رو بفرستید و بعد در سمت سرور محتوا رو بخونید و به سمت کاربر برگردونید و بعدشم تغییرات رو که انجام دادید باید دوباره محتوا روبه سمت سرور بفرستید و ذخیره کنید،file_get_contents و file_put_contetns میتونه کمکتون کنه.موفق باشید
mojtaba-2010 ۲۲ دی ۱۳۹۲، ۰۲:۱۲
سلام چطور میشه فایهایی که نشان میدهد را مدیریت کرد
فایلی را پاک کرد و ...
کیوان علی محمدی ۰۴ بهمن ۱۳۹۲، ۱۱:۲۸
سلام باید این کار قسمت مدیریت (ایکن های حذف و اضافه و ...) رو اضافه کرد و برای کلیک کردن این ها دستورات لازم رو نوشت،میشه با ای جکس و میشه با حالت معمولی پیاده سازی بشه.
محمد ۰۶ دی ۱۳۹۲، ۲۱:۰۸
سلام من میخوام فقط 10 تا لینک تازه رو نشون بده باید چه کدی بهش اضافه بشه؟
لطفا راهنمای کنید کارم لنگه .

خیلی ممنون از سایت خوبتون
کیوان علی محمدی ۱۶ دی ۱۳۹۲، ۱۳:۵۷
باید یه کانتر براش ست کنید و بعد از مقدار 10 تا return کنید.
ahadabasi ۳۰ آذر ۱۳۹۲، ۲۰:۲۶
:!:
طراحی+سایت ۲۳ آذر ۱۳۹۲، ۱۳:۲۴
خیلی ممنون استفاده کردیم
تركی ۲۰ آبان ۱۳۹۲، ۱۵:۲۳
سلام جناب آوند
استفاده كرديم
ممنون
دارکوب ۱۳ آبان ۱۳۹۲، ۱۲:۴۴
باتشکر از درج مطالب مفید شما.
طراحی سایت ۲۲ مهر ۱۳۹۲، ۱۵:۲۹
ممنون از مطالب خوبتون
mrprogramer ۰۳ مهر ۱۳۹۲، ۲۲:۳۲
این کد ها محتویات پوشه file را که در پروژه موجود است را نشان می دهد ، حالا چکار کنم تا محتویات همان جایی که list.php در آن است را نشان دهد؟
اگر لطف کنید کدش را برایم مثال بزنید.
کیوان علی محمدی ۰۴ مهر ۱۳۹۲، ۰۷:۳۳
سلام به جای نام پوشه از این استفاده کنید.

dirname(__FILE__)
mrprogramer ۰۳ مهر ۱۳۹۲، ۱۲:۱۱
در خط 43 تابع glob دقیقا چیکار میکنه ، اگه ممکنه با جزئیات توضیح بدین.
لقمان آوند ۰۳ مهر ۱۳۹۲، ۱۲:۴۶
یه تابع جستجو هست که همه ی مواردی که با پارامتر ورودیش مچ هست رو به ما میده . جزئیات بیشتر رو اینجا بخونید .
1 ۲۰ شهریور ۱۳۹۲، ۱۳:۱۱
واقعا که به این میگن سایت
ماهان ۲۰ شهریور ۱۳۹۲، ۰۱:۱۴
من زیاد کار با فایل هارو بلد نیستم...میشه کدشو رو در اختیارم قرار بدید؟
کیوان علی محمدی ۲۰ شهریور ۱۳۹۲، ۱۵:۴۸
سلام کدش که توی همین آموزش هست دوست عزیز!
ماهان ۲۰ شهریور ۱۳۹۲، ۰۰:۲۵
سلام.....
این کد امکانش هست طوری ویرایشش کنید که همه فایل ها و فولدر هایی رو که پیدا میکنه پاک کنه؟
لقمان آوند ۲۰ شهریور ۱۳۹۲، ۰۰:۵۹
میشه اینکارو هم کرد . باید از تابع unlink برای حذف فایل ها استفاده کنید .
عسل ۲۹ مرداد ۱۳۹۲، ۰۲:۲۲
سلام و با تشکر از وب سایت خوبتون
من صفحاته وبی رو تهیه کردم که قرار به صورت افلین ازشون استفاده بشن می خواستم بدونم شما راهی یا کدی رو می دونین که بشه تمام صفحات لینک شده به صفحه اصلی رو به صورت فایل اگزه در بیارم ؟
لقمان آوند ۲۹ مرداد ۱۳۹۲، ۱۱:۳۰
عبارت html to executable رو در گوگل جستجو کنید برنامه های خوبی پیدا می کنید . نمونه و دانلودش !
missprogrammer ۱۱ مرداد ۱۳۹۲، ۱۱:۴۲
سلام.
اگر فایل توسط htaccess محافظت بشه بازم میشه لیست گرفت؟
و اینکه اگر آدرس سایت به جای اون قسمت آدرس پوشه بنویسیم کار نمیکنه.
من میخوام لیست فایل هایی از یه سایتی رو بگیرم که توسط htaccess محافظت میشه میشه کمک کنید؟ خیلی ضروریه.
لقمان آوند ۱۲ مرداد ۱۳۹۲، ۰۱:۱۱
بله ، لیست می کنه . البته چیزی که شما می خواید امکانپذیر نیست و آدرس پوشه یک آدرس نسبی هست که در همون سرور باید باشه و نمی تونید ادرس دامنه یا سرور دیگه ای رو برای لیست شدن فایل ها بدید .
Bvk ۲۲ تیر ۱۳۹۲، ۱۵:۵۳
حرف شما درست ، ایجا قسمت بانک کد هست ولی سوال مطرح شده در همین مورد هستش
Bvk ۲۲ تیر ۱۳۹۲، ۱۴:۵۱
خواهش میکنم یکی پاسخ گو باشه نسبت به تاپیک
وحید صالحی ۲۲ تیر ۱۳۹۲، ۱۵:۴۴
عنوان تاپیک چیه؟
Bvk ۱۸ تیر ۱۳۹۲، ۱۵:۲۵
سلام ببخشید ، یک سوال داشتم می خواستم با این کد آدرسی که من

بهش میدم رو محتویات پوشه رو لود کنه ! به عنوان مثال : بیاد به جای

foldername$ بیاد آدرس رو از داخل یک تکس باکس بخونه . ممنون میشم اگر راهنمایی کنید
لقمان آوند ۱۸ تیر ۱۳۹۲، ۲۲:۵۲
می تونید آدرس رو به صورت پارامتر GET از url بگیرید ...
بابک افشار ۱۴ تیر ۱۳۹۲، ۱۲:۲۴
ادامش یادم رفت بنویسم
اینی که از 1code گرفتم هم میره تو ادامه مطلب ولی قسمت نظرات رو نشون نمیده...
بابک افشار ۱۴ تیر ۱۳۹۲، ۱۲:۱۳
https://7learn.com/ads
لقمان جان
صفحه ads پاک شده
درستش کن بی زحمت.

و یه سوال
من قبلا قالب وبلاگم رو داده بودم به شما که نظرات رو لینک کنی یه ادامه مطلب دستت درد نکنه این کارو انجام دادی
الان مجبور شدم یخاطر یه سری تغییرات کل قالب وبلاگ رو از اول بنویسم
اون تیکه کدی که برام نوشته بودی دچار اشکال شده
ایمکه وقتی با کد شما رو نظرات کلیک میکردم میرفت تو ادامه مطلب و قسمت نظرات رو نشون میداد
اما الان اینی که از 1code.ir گرفتم اینجوری نیست.
نمیدونم چیکارش کنم
اگه میتونی کاری کنی همنیجا بهم بگو یا یهم ایمیل بزن
دستت درد نکنه استاد بزرگ. :wink:
aboozar ۲۲ خرداد ۱۳۹۲، ۲۲:۳۴
سلام و خسته نباشین
میشه بدون خرید هاست صفحات php ساخت ؟
مثلا در قسمت صفحات جداگانه مدیریت بلاگفا و یا دیگر سرویس دهنده های وبلاگ
لقمان آوند ۲۳ خرداد ۱۳۹۲، ۰۰:۴۸
می تونی از هاست های رایگان استفاده کنی . ولی در سرویس های وبلاگ دهی ایرانی نمیشه .
sadeghvilla ۲۱ خرداد ۱۳۹۲، ۱۲:۱۴
slm refigh yek banere dge vasam mizani?
:lol:
لقمان آوند ۲۱ خرداد ۱۳۹۲، ۱۳:۳۸
متوجه نشدم . چه بنری ؟