بعض دوال التعامل مع الملفات فى لغة php

تاريخ النشر : 2013 ,August 31
التصنيف : برمجة | 3 Comments

 

هناك العديد من دوال التعامل مع الملفات فى لغة الـ php، سأذكر هنا أشهرها وأكثرها إستخداما، وخصوصا ما يتعلق منها بقراءة محتويات ملف ما أو بإضافة محتويات إليه. سوف أنشئ ملفين لهذا الغرض، الملف الأول سوف يحتوى على الـ class التى ستحتوى على الأكواد الأساسية للتعامل مع الملفات بالشكل الذى نريده، وسوف نسميه File.class.php. والملف الثانى سيحتوى على الكود الذى سنحدد من خلاله ما هى العمليات التى نريد تنفيذها على  الملف، سواء كانت قراءة محتوياته أو الإضافة إليها، وسوف نسميه index.php.

فى الكود السابق أنشأنا class أسمها File وأضفنا بداخلها دالتين فقط. الدالة الأولى هى write التى سنستخدمها لإضافة محتوى إلى ملف ما. والدالة الثانية هى read التى سنستخدمها لقراءة محتوى من ملف ما.

بالنسبة لدالة write، فهى تحتاج لكى تعمل أن نمرر لها وسيطين arguments، الأول file_name$ هو مسار وأسم الملف المطلوب إضافة محتوى إليه، والثانى content$ هو المحتوى المطلوب إضافته. وقبل أن ننشئ اتصالا بالملف الذى سنتعامل معه سيكون من الجيد أولا أن نتأكد من أن هذا الملف موجود ويمكن إضافة محتوى إليه، لأن صلاحيات الملف قد لا تسمح لنا بإضافة محتويات إليه، فإذا كان الأمر كذلك فستظهر لنا رسالة تخبرنا بذلك، والتى سيظهرها الكود التالى الموجود بداخل دالة write:

فإذا لم تظهر لنا رسالة خطأ، فهذا يعنى أن الملف موجود وأنه يمكن إضافة محتوى إليه. وستصبح الخطوات كما يلى على التوالى:

1- فتح الملف عن طريق:

ومن المهم هنا ملاحظة الوسيط الثانى الذى تأخذه دالة fopen فهو الذى سيحدد الحالة mode التى سيتم فتح الملف عليها، فهناك عدة حالات منها: فتح الملف للقراءة فقط ، أو للكتابة فقط، او للقراءة والكتابة معا، وحالات أخرى.. ويمكن مراجعة جميع الحالات من خلال هذه الصفحة.

والحالة mode التى استخدمناها هنا هى الحالة a (والتى ترمز إلى append) والتى تعنى اننا سنفتح الملف لإضافة محتوى إليه فقط، على أن يتم إضافة هذا المحتوى إلى نهاية الملف بعد أى محتوى آخر قد يكون موجود فيه، وبذلك نحافظ على محتوياته الموجودة من قبل (ان وجد). كما أن الحالة a تعنى أن الملف إذا لم يكن موجودا من الأساس فسوف يتم إنشاؤه أولا ثم يتم اضافة المحتوى إليه بعد ذلك.

2- إضافة المحتوى المراد إلى الملف عن طريق:

ولاحظ هنا أننا استخدمنا n\ بعد المحتوى content$ المراد اضافته، وذلك لكى يتم اضافة هذا المحتوى على سطر منفصل فى الملف

3- غلق الملف عن طريق:

وكلمة فتح الملف وغلق الملف لا تعنى اننا سنرى الملف أمامنا على الشاشة، فهو لن يظهر لنا، ولكننا اذا فتحناه بالطريقة العادية فى أى وقت فسوف نجد فيه المحتوى المضاف.

هذا بالنسبة لدالة write، أما بالنسبة لدالة read التى سنستخدمها لقراءة محتويات الملف، فهى تأخذ وسيطا واحدا هو مسار وأسم الملف file_name$ المراد قراءة محتوياته. وكبداية سيكون من الجيد أن نتأكد من أن الملف المراد قراءة محتوياته موجود ويمكن قراءته، وسيتم ذلك عن طريق هذا الجزء من الكود الموجود بداخل الدالة read:

فإذا لم يكن الملف موجودا أو غير قابل للقراءة، فسوف تظهر لنا رسالة تشير إلى ذلك. أما إذا كان موجودا وقابلا للقراءة فسيتم الأمر كما يلى:

1- فتح الملف للقراءة منه فقط عن طريق:

لاحظ هنا أن الوسيط الثانى للدالة fopen قد تغير من a الذى استخدمناه عند الكتابة فى الملف، إلى r الذى سنستخدمه هنا للقراءة فقط من الملف.

2- قراءة محتويات الملف سطر سطر عن طريق:

إننا هنا ببساطة كأننا نقول للمؤشر الذى يقرأ من الملف: إذا لم تكن قد وصلت إلى آخر سطر، إذن فأعد لنا هذا السطر الذى تقف عنده. والمسئول عن إعادة محتوى الملف سطر سطر هو دالة fgets. وبذلك سنظل نحصل على محتويات الملف سطر سطر إلى أن تنتهى. ويمكننا تخزين هذه الأسطر فى متغير واحد file_content$  ونستخدمة دفعة واحدة بعد ذلك كما سيتضح فيما يلى.

3- غلق الملف عن طريق:

4- إعادة محتوى الملف كله الذى سبق تخزينه فى متغير عن طريق:

هذا هو الحال بالنسبة لملف Fils.class.php الذى أنشأناه أولا. أما بالنسبة لملف index.php الذى سنعرض من خلاله كيف سنتعامل مع الملف فهو كما يلى:

لقد أدرجنا ملف الـ class أولا لكى نستطيع ان ننشئ كائن object ونستخدمه، ثم أنشأنا كائن جديد، ثم أنشأنا متغير حفظنا فيه مسار وأسم الملف الذى سنتعامل معه، وذلك من خلال الكود التالى:

الآن نحن نريد أن نضيف إلى الملف تاريخ اليوم والوقت الحالى، سيتم ذلك كما يلى:

لاحظ هنا أننا لم ننشئ ملف test.txt أساسا من قبل، ولكن الدالة التى نستخدمها هى التى ستقوم بإنشائه عندما لا تجده فى الموضع الذى حددناه له والذى حفظناه فى المتغير file_name$ . الآن إذا ذهبت إلى مكان الذى تحفظ فيه ملف index.php فسوف تجد فيه ملف جديد أسمه test.txt وستجد بداخله عندما تفتحه تاريخ اليوم والوقت المسجل على سطر منفصل.

أما بالنسبة لقراءة محتويات هذا الملف فسوف نقرأها كما يلى:

وبمجرد تشغيلك لصفحة index.php فسوف يظهر لك على الفور محتويات ملف test.txt كما تظهر فيه.

التعليقات



3 تعليق على تدوينة “بعض دوال التعامل مع الملفات فى لغة php”

  1. نوفا

    September 27th, 2013 4:44 pm

    فعلاً الموقع ممتاز ومفيد جداً لكم منى اجمل تحية

  2. sadwolf

    October 20th, 2013 6:59 pm

    بارك الله فيك
    شرح رائع

  3. ريرى

    March 13th, 2014 12:09 pm

    مرسي أوى على الموقع الجميل دة .. و ربنا يوفقكم ان شاء الله

إترك تعليق






رب هب لى شجاعة لتغيير الأشياء التى أستطيع تغييرها، و سكينة لقبول الأشياء التى لا أستطيع تغييرها، و حكمة لمعرفة الفارق بينهما.
سان فرانسيز