نمایش لیست فایل ها در php

  • آپدیت شده در تاریخ

نمایش لیست فایل ها در php

زبان برنامه نویسی php تابع های معرکه ای برای مدیریت فایل های یک دایرکتری یا فولدر خاص دارد . تابع های سفارشی و کد های مثال زیر به شما نحوه نمایش لیست فایل ها در php را با یک مثال واقعی نشان میدهد.

نمایش لیست فایل ها در php و ذخیره در دیتابیس MySQL

اسکریپت php زیر یک مثال از به دست آوردن لیست فایل های موجود در یک پوشه و ذخیره تک تک آنها در جدولی از دیتابیس mysql است . قابلیت های دیگر این اسکریپت :

  • ذخیره زمان آخرین تغییر در دیتابیس
  • لیست تمام فایل هایی که در دیتابیس ذخیره نشدند ، در آرایه ای از خطاها ذخیره می شود .

استفاده از کد php زیر برای کار با فایل ها و دایرکتوری ها بسیار ساده است . کافیست تنها اسکریپت مورد نظر را در فولدری که قصد دریافت لیست فایل های آن را دارید قرار بدید و بعد آن را از طریق مرورگر اجرا کنید .

تشریح اسکریپت php نمایش لیست فایل ها

ساخت جداول دیتابیس :

کد SQL ساخت جدول example با فیلد های مورد نیاز

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

ساخت کانکشن دیتابیس :

برای آشنایی با اتصال به دیتابیس mysqli با php کلیک کنید

این تابع لیست فایل های دیرکتری ای که به عنوان ورودی تابع تعیین کردید ، دریافت و یک آرایه شامل همه فایل های آن را return (برگشت) می دهد .

بعد اسم فایل و تاریخ آخرین تغییر را فایل را در دیتابیس INSERT می کنیم .

در این خط مسیر فایل را در متغییر $path ذخیره می کنیم .

اسلش های بریده بریده را چک می کنیم و در صورت نیاز جایگرین slash مناسب با نوع لینوکسی یا ویندوزی می کنیم .

دریافت لیست فایل های پوشه مورد نظر :

ساخت چندین آرایه و متغییر برای دریافت تعداد فایل ها

اگر تعداد فایل های فولدر موردنظر خالی نبود شرط زیر اجر می شود .

ترتیب بندی و حذف فایل های پوشه در php

این تابع لیست فایل های یک پوشه را دریافت می کند . هر دفعه که یک فایل جدید ساخته شد ،  اگر محدودیت تعداد مورد نظر پر شده بود ، یکی از فایل های قبلی حذف می شود (با استفاده از تابع unlink) .

پارامتر دوم ، اختیاری است و مقدار محدودیت را تعیین می کند

نحوه استفاده :

 

در آموزش نمایش لیست فایل ها در php سعی کردیم روش کار نمایش فایل های درون یک پوشه  و چندین تابع دیگر مربوط به مدیریت فایل ها در php را به شما در قالب مثال نمایش بدیم . در آموزش قبلی نیز با تابع glob و  unlink برای دریافت لیست فایل ها و همچنین حذف آنها آشنا شدیم .

امیدوارم از این آموزش هم لذت برده باشید . این موارد را می توانید در پروژه هایی که مربوط به مدیریت فایل های کاربران است استفاده کنید به اینصورت که آن را به صورت php cli در cron job استفاده کنید تا فضای هاست شما پر نشود.

هر گونه مشکلی در پیاده سازی کدها داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲۲)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. علی ۱۱ خرداد ۱۴۰۱

    سلام. بسیار اموزش کاربردی بود. بدون داشتن دیتابیس چطور میشه اینکارو کرد؟هاست های دانلود دیتابیس ندارن.یا اگه بشه ریموت به دیتابیس یه هاست دیگه وصلش کرد.

    پاسخ
    1. حسن شفیعی ۱۳ خرداد ۱۴۰۱

      سلام. خوشحالیم که مفید واقع شده
      خروجی تابع که لیست فایل ها هست رو بصورت json_encode کنید و با file_put_contents داخل یک فایل ذخیره کنید

      پاسخ
  2. ابوالفضل ۱۳ فروردین ۱۴۰۱

    سلام
    چطور یک پوشه رو به طور کامل از وب کپی یا zip کنم؟
    لطفا راهنمایی کنید

    پاسخ
    1. حسن شفیعی ۱۵ فروردین ۱۴۰۱

      سلام. از این کد استفاده کنید:

      پاسخ
  3. dr ۲۹ اسفند ۱۴۰۰

    سلام و وقت بخیر!

    من یک کدی نیاز دارم که فقط پوشه هارو نشون بده !
    لطفاً کامل بگذارید&

    پاسخ
    1. حسن شفیعی ۲۹ اسفند ۱۴۰۰

      سلام ممنون.
      از تابع glob و اضافه کردن فلگ GLOB_ONLYDIR بصورت زیر استفاده کنید

      $directories = glob(“$dir/*” , GLOB_ONLYDIR);

      پاسخ
      1. parsa ۲۹ اسفند ۱۴۰۰

        چیزی نشون میده!

        پاسخ
      2. حسن شفیعی ۲۹ اسفند ۱۴۰۰

        باید php متوسط رو بلد باشید. اینجوری نمیتونید با کد خروجی بگیرید

        پاسخ
  4. parsa ۲۸ اسفند ۱۴۰۰

    سلام.
    چگونه میشه تمام پوشه های دایرکتوری رو دریافت کنیم؟

    پاسخ
    1. حسن شفیعی ۲۸ اسفند ۱۴۰۰

      سلام با استفاده از تابع glob و اضافه کردن فلگ GLOB_ONLYDIR

      $directories = glob(“$dir/*” , GLOB_ONLYDIR);

      پاسخ
      1. parsa ۲۹ اسفند ۱۴۰۰

        کمی باز تر بیان کنید!

        پاسخ
  5. ericbod091 ۲۰ بهمن ۱۳۹۹

    باسلام خسته نباشید استاد
    ببخشید من یک سوال داشتم
    اگه امکان داره من بیشتر راهنمای کنید ممنونم میشم
    من یک هاست داریم من میخوام باURLنام آخرین فایل موجود در هاست رو دریافت کنم راهنمای کنید ممنونم میشم

    پاسخ
    1. ericbod091 ۲۱ بهمن ۱۳۹۹

      میشه من راهنمایی کنید ممنونم

      پاسخ
      1. حسن شفیعی ۲۲ بهمن ۱۳۹۹

        متاسفانه بیشتر از این نمیشه راهنمایی کرد. بهتره php متوسط یاد بگیرید یا اگر پروژه هست به یکی بسپارید

        پاسخ
  6. میلاد ۲۸ دی ۱۳۹۹

    سلام من میخواهم نام آخرین فایل موجود در یک ip سرور پیدا کنم وبعد کپی کنم رو هاست خودم میشه ؟ راهنمای کنید ؟

    پاسخ
    1. میلاد ۳۰ دی ۱۳۹۹

      پاسخ نداره؟؟چکارکنم؟؟

      پاسخ
      1. حسن شفیعی ۳۰ دی ۱۳۹۹

        سلام. سوال شما مشخص نیست همچنین چون دسترسی به هاست نیست نمیتونید تاریخ فایل ها رو دربیارید و بر این اساس مرتب کنید.
        https://netparadis.com/web-scraping-php/

        پاسخ
      2. میلاد ۳۰ دی ۱۳۹۹

        ممنون
        من به هاست وتاریخ و ساعت ها دسترسی دارم و کامل میشه دید فیل ها رودید
        عکس در واتساپ ارسال میکنم

        پاسخ
      3. حسن شفیعی ۳۰ دی ۱۳۹۹

        با این کد میتونید نام جدیدتری یا همان آخرین فایل اضافه شده رو دریافت کنید
        $files = scandir(‘data’, SCANDIR_SORT_DESCENDING);
        $newest_file = $files[0];

        بعد نام فایل رو به آدرس دامنه به همراه فولدر بچسابانید مثلا $url = “site.com/folder/$newest_file”;

        بعد با این آموزش میتونید دانلود کنید https://netparadis.com/force-download-php
        همچنین توجه کنید ایمیل بدون www. هست و درست در سایت ثبت کنید

        پاسخ
      4. میلاد ۳۰ دی ۱۳۹۹

        خیلی خیلی ممنونم فقط یک سوال دیگه داشتم
        من میخوام در هاست دوم پوشه هاست اول دریافت کنم اون رو چه چوری بنویسم ؟
        ممنونم میشم راهنمای کنید

        پاسخ
      5. میلاد ۴ بهمن ۱۳۹۹

        جواب نداره ؟
        میشه کاری کرد یا نه؟

        پاسخ
      6. حسن شفیعی ۴ بهمن ۱۳۹۹

        متاسفانه بیشتر از این نمیشه راهنمایی کرد بهتره php متوسط رو یاد بگیرید

        پاسخ
دوره های آموزشی