دوره مجازی PHP (جلسه 14): توابع php - کار با فایل ها

- visibility ۶۴ mode_comment

کار با فایل ها در هر زبانی یکی از جالب ترین مباحث ممکن هست . در این جلسه ما به تشریح توابع PHP برای کار با فایل ها می پردازیم و در انتها یک مینی پروژه ی بسیار جالب و کاربردی رو با هم مینویسیم . یه فایل منیجر ساده با قابلیت های لیست کردن فایل ها، حذف فایل ها ، ویرایش فایل ها و ...

:: محتویات این جلسه عبارتند از :

کار با فايل ها در PHP :

  • ايجاد فايل و فولدر در سرور
  • دريافت اطلاعات کامل يک فايل
  • دريافت نام فايل با استفاده از مسير آن
  • دريافت مسير فولدر حاوي فايل از مسير آن
  • چک کردن وجود يا عدم وجود يک فايل
  • چک کردن فايل/پوشه بودن يا نبودن يک فايل
  • خواندن کل محتواي فايل و قراردادن آن در يک آرايه
  • خواندن فايل و دريافت کل محتواي آن به عنوان يک رشته
  • نوشتن يا اضافه کردن اطلاعات از يک رشته به درون فايل
  • بازکردن و بستن يک فايل
  • خواندن اطلاعات از درون يک فايل
  • نوشتن اطلاعات در فايل
  • دريافت سايز و فرمت (نوع) فايل
  • آپلود و انتقال فايل بر روي سرور
  • دريافت نام و اطلاعات فايل هاي موجود در پوشه ها
  • اجبار به دانلود فايل با استفاده از php
  • تغير مجوزهاي دسترسي به فايل
  • کپي کردن يک فايل به آدرسي ديگر
  • تغير نام فايل بر روي سرور
  • حذف فايل ها و پوشه ها
  • دريافت اطلاعات فضاي خالي وکل ديسک سرور
  • ميني پروژه : اسکريپت فايل منيجر با قابليت ليست کردن، ويرايش، حذف و اضافه کردن فايلها
  • توابع متفرقه
info نکته :

یک تابع به نام file در php وجود داره که محتویات یک فایل رو در یک آرایه قرار میده . (هر خط فایل یک عضو آرایه) . این مورد در ویدیو از قلم افتاده بود که گفتم خدمتتون ذکر کنم !

info توجه

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

ثبت نام در دوره حرفه ای PHP

comment دیدگاه کاربران
Pourya Ariyafar

استاد آوند میشه این 2 سوال اخر من رو جواب بدید
ممنون

لقمان آوند

پاسخ داده شد
موفق باشید

Star

سلام وقت بخیر،
چطور می شه فایل های فارسی در یک فولدر را نشان داد؟ file manager ای که شما زحمت کشیدید نوشتید با کلمات فارسی مشکل دارد..

کیوان علی محمدی

سلام تابع mb_convert_encoding رو تست کنید برای نمایش متن ها.

Star

احیانا قرار نیست به سوال من جواب بدید؟ 8 فروردین تا الان خیلی هست!

کیوان علی محمدی

سلام دوست عزیز.. ببخشید به خاطر تاخیر چی بوده سوالتون؟

Star

سلام، تشکر از پاسختون،
سوالم از مدرس دوره آقای دکتر آوند بود، اگر شما بتونید جواب بدید که خیلی عالی هست…
سوال من:
چطور می شه فایل های فارسی در یک فولدر را نشان داد؟ file manager ای که شما زحمت کشیدید نوشتید با کلمات فارسی مشکل دارد..

با تشکر

کیوان علی محمدی

سلام مجدد. بسته به نسخه های php و هم چنین سیستم عامل ممکنه این مشکل پیش بیاد. ترجیحا سعی کنید از نسخه های php 5.5به بعد استفاده کنید. با نسخه php 5.6 تست کردیم و مشکلی نداره. هم چنین برای دریافت لیست فایل ها از تابع glob خود php استفاده شده.در زیر نمونه کد تست شده رو قرار میدیم(البته این کد ربطی به آموزش این جلسه نداره).

class FileBrowser
{
public function __construct()
{
$this->getCurrentDirectoryFiles();
}

private function getCurrentDirectoryFiles()
{
foreach (glob('*.txt') as $file){
echo $file.'
';
}
}
}
new FileBrowser();

Star

آقای علی محمدی عزیز،
تشکر ممنونم ازتون بابت قطعه کد،
ساخت یک فولدر به صورت فارسی به چه صورت هست؟
وقتی یک فولدر به صورت فارسی می سازم حروفش همه بهم ریخته است!
برای Rename کردن فایل هم به فارسی مشکل دارم و نمی تونم به صورت فارسی Rename کنم.
ببینید من می خواهم یک فایل منیجر درست کنم که ساخت فولدر و آپلود فایل و حذف و … داشته باشه. تا الان ساخت فولدر و آپلود و حذف و تغییر نام و … را درست کردم ولی همشون با فارسی مشکل دارند.
با این قطعه کد شما تونستم لیست کردن فایل ها و فولدر ها را به صورت فارسی اوکی کنم.
تشکر از پاسختون

کیوان علی محمدی

خواهش میکنم. می تونید با توابعی مثل mb_convert_encoding مطمئن بشید که اسم دایرکتوری به صورت یونیکد در اومده.نمونه کد زیر به صورت صحیح تست شده.

< ?php class FileBrowser { public function __construct() { // $this->getCurrentDirectoryFiles();
}

private function getCurrentDirectoryFiles()
{
foreach (glob('*.txt') as $file) {
echo $file . '
';
}
}

public function createDirectory($name = "")
{
if(empty($name)){
return false;
}
mkdir(__DIR__.DIRECTORY_SEPARATOR.mb_convert_encoding($name,"UTF-8"));
}
}

$handler = new FileBrowser();
$handler->createDirectory("فایل ها");

Star

بازم تشکر بابت پاسختون،
وقتی فولدر را می سازد توی لوکال این شکلی می شود:
فایل ها

کیوان علی محمدی

نسخه php شما چنده؟

Star

PHP Version 7.0.8

کیوان علی محمدی

نسخه php شما بالاست. به نظرم مشکل یا از سیستم شما باشه. بهتره از control panel در قسمت Region و تب administrative در بخش Language For non-Unicode Programs روی دکمه Change System Locale کلیک کنید و مقدار Persian رو براش انتخاب کنید. یکبار سیستم ریستارت کنید و دوباره تست کنید.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2 3