بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته ,, تحدثنا في الدرس السابق عن الأصناف و كيفية التعامل معها و تحدثنا عن انشاء الوظائف و الدوال و دالة انشاء الصنف و بإمكانكم الإطلاع على الدروس السابقة من خلال الفهرس التالي :
- [دورة php - الدرس الأول] - تحضير البرامج و كتابة اول برنامج
- [دورة php - الدرس الثاني] - المتغيرات و طريقة تعريفها و انواعها و التعامل معها
- [دورة php - الدرس الثالث] - الجزء الأول : الطباعة المدمجة و تنسيق الصفحات لعرضها
- [دورة php - الدرس الرابـع] - الجزء الثاني : طباعة المتغيرات في النصوص و بعض الدوال
- [دورة php - الدرس الخامس] - الثوابت و متغيرات النظام و دوال لا يستغني عنها اي مبرمج
- [دورة php - الدرس السادس] - الجزء الأول : النماذج و كيفية تصميمها و فوائدها
- [دورة php - الدرس السابع] - الجزء الثاني : معالجة بيانات النماذج و برمجتها
- [دورة php - الدرس الثامن] - الجزء الثالث : تطبيق عملي للنماذج - اتصل بن
- [دورة php - الدرس التاسع] - الجزء الأول : الجمل الشرطية : if وانواعها
- [دورة php - الدرس العاشر] - الجزء الثاني : الجمل الشرطية : جملة switch
- [دورة php - الدرس الحادي عشر] - الجزء الأول : جمل التكرار و الدوران : for + while
- [دورة php - الدرس الثاني عشر] - الجزء الثاني : تكملة جمل التكرار و تطبيقات عليها
- [دورة php - الدرس الثالث عشر] - الجزء الأول : المصفوفات الرقمية و تعريفها
- [دورة php - الدرس الرابع عشر] - الجزء الثاني : المصفوفات الحرفية و المركبة و تعريفها
- [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات
- [دورة php - الدرس السادس عشر] - اعادة استخدام الكود و ادراج الملفات
- [دورة php - الدرس السابع عشر] - انشاء و برمجة الدوال functions
- [دورة php - الدرس الثامن عشر] - مقدمة الى البرمجة الموجهة للكائنات
- [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects
- [دورة php - الدرس العشرون] - دالة بناء الصنف و مستويات الخصوصية
اما في درسنا اليوم فسوف نتحدث عن الملفات و كيفية التعامل معها ,, فالملفات موضوع مهم في لغات البرمجة و في كثير من الأحيان يلزم المبرمج ملفات لتخزين بعض الملفات للتعامل معها في برنامجه و لغة php كالعادة تدعمنا بهذه الخاصية القوية , سنبدأ بدراستها الآن بإذن الله ...
ما هي الملفات ؟؟ و ما هي انواع الملفات التي نستطيع التعامل معها في لغة php ؟؟
يقصد بالملفات هنا ملفات نصية و الملفات النصية هي ملفات نستطيع تخزين الكلام النصي فيها اي اننا نستطيع الكتابة عليها و القراءة منها و نستطيع التعامل مع اجزائها و الكلام المخزن فيها .. اما انواع الملفات النصية فلا قيود عليها على عكس الكلام الشائع ,, فمن الأخطاء الشائعة بين الذين يتعاملون مع الحاسوب و المبتدئين في البرمجة ان الملف النصي الذي يكون امتداده xxx.txt وهنا اقصد .txt وهذا خطأ لأن المبرمج يقوم بصنع امتداد لملفاته كيفما يريد فمثلا اذا كان برنامج يتعامل مع الملفات و اريد تخزين كلمات عن الرياضيات فأستطيع تخزين الملف على صيغة xxx.cal و هكذا عموما سوف نتعامل هنا مع الصيغة txt و سيكون بعض الأمثلة التي تحتوي على امتدادات اخرى ...
كالعادة لغة php تدعمنا بالعديد من الدوال الخاصة للتعامل مع الملفات و لكل واحدة من هذه الدوال وظيفة محددة للتعامل مع الملفات و سنتعرف على هذه الدوال من خلال ذكرها اولا ثم نذكر خوارزمية التعامل مع هذه الدوال ثم نقوم بكتابة عدة امثلة لنقوم بترسيخ الفكرة و سنبدأ بذكر الدوال و تعريفها و كيفية كتابتها و استخدامها
الدالة fopen
هذه الدالة هي الدالة المسؤولة عن فتح الملف و تجهيز مقبض الملف للتعامل معه و هذه الدالة يجب ان تخزن القيمة العائدة منها في متغير و هذه الدالة تأخذ باراميترين الأول هو مسار الملف الذي نود التعامل معه و الثاني هو الذي يحدد طبيعة التعامل مع الملف اي هل اننا نود القرائة فقط من هذا الملف او اننا نريد القرائة و الكتابة ام هل نريد الكتابة فقط و هذا الباراميتر يحدد من خلال حرف او حرف و رمز حيث ان لكل حرف له وظيفة خاصة ,, لاحظ معي الملف التالي :
كود PHP:
<?php
$handle = fopen("f.txt" , "r");
?>
تلاحظ اننا قمنا بتمرير مسار الملف الذي نريد فتحه للتعامل معه و قمنا ايضا بتمرير الحرف r الذي يعني اننا نريد القرائة فقط ,, لاحظ في السطور التالية ما هي الأحرف و الرموز التي نستخدمها للتحكم بنسق التعامل مع الفايل :
r: القراءة من الملف من بدايته.
r+: القراءة والكتابة من الملف من بدايته.
w:الكتابة بالملف من بدايته مع حذف المحتويات الموجودة مسبقاً إن وجدت، وإذا لم يكن الملف موجوداً يتم إنشاءه.
w+:الكتابة والقراءة من الملف من بدايته مع حذف المحتويات الموجودة مسبقاً إن وجدت، وإذا لم يكن الملف موجوداً يتم إنشاءه.
a:الكتابة بالملف بدءاً من نهاية محتوياته، وإذا لم يكن الملف موجوداً يتم إنشاءه.
a+:الكتابة والقراءة من الملف بدءاً من نهاية محتوياته، وإذا لم يكن الملف موجوداً يتم إنشاءه.
الدالة feof
و هذه الدالة تستخدم لفحص الملف و التأكد من الوصول الى نهاية الملف فالحروف eof تعني end of file و هذه الدالة تأخذ باراميتر واحد و هو اسم المتغير الذي فتحنا به الملف و تستخدم كالتالي :
كود PHP:
<?php
$handle = fopen("f.txt" , "r");
while( !feof($handle) )
{
// do some thing
}
?>
هنا قمنا بفتح ملف في السطر الأول
و في السطر الثاني قمنا بعمل دوران و شرط التوقف هو فحص اذا ما كنا قد وصلنا الى نهاية الملف اي كأننا نقول اذا لم نصل الى نهاية الملف افعل كذا و كذا
الدالة fgetc
هذه الدالة تقوم بقرائة حرف واحد من الملف في كل دوران و هي تأخذ باراميتر واحد و هو مقبض الملف الذي نريد القرائة منه handle و تعود لنا هذه الدالة بالحرف و تخزنه في متغير ,, لاحظ المثال التالي :
كود PHP:
<?php
$handle = fopen("f.txt" , "r");
while( !feof($handle) )
{
$char = fgetc($handle);
echo $char."<br/>";
}
?>
هنا في داخل الدوران قمنا بجلب حرف واحد من الملف و قمنا بتخزينه في المتغير char$ ثم قمنا بطباعته على سطر مستقل ,, لاحظ نتيجة تنفيذه كما في الصورة التالية :
الدالة fgets
و هذه الدالة تقوم بجلب سطر كامل من الملف للتعامل معه و تأخذ هذه الدالة ايضا باراميتر واحد و هو مقبض التعامل مع الملف handle .. لاحظ المثال التالي :
كود PHP:
<?php
$handle = fopen("f.txt" , "r");
while( !feof($handle) )
{
$line = fgets($handle);
echo "Line : ".$line."<br/>";
}
?>
هذا هنا قمنا بنفس المثال السابق لكن يقوم بجلب و طباعة سطر كامل .. لاحظ الصورة التالية :
الدالة fwrite
هذه الدالة تستخدم للكتابة على ملف و هي تأخذ باراميترين الأول هو متغير مقبض الملف و الثاني هو النص الذي نريد كتابته في الملف ,, لاحظ المثال التالي :
كود PHP:
<?php
$handle = fopen("f.txt" , "w+");
for($i=1;$i<=10;$i++)
{
fwrite($handle,$i);
}
?>
في هذا المثال قمنا بعمل دوران و في مل مرة داخل الدوران نكتب على الملف قيمة العداد ليظهر لنا النتيجة كما في الصورة التالية :
ملاحظة مهمة بالنسبة الى دالة الكتابة على الملف ,, عند الكتابة على الملف يجب ان يكون نسق التعامل مع الملف اي شيء عدا r و +r و عادة يكون w او +w لكن انا افضل النسق +a
الدالة fclose
هذه الدالة تقوم بإغلاق مقبض التعامل مع الملف الذي تم فتحه في بداية البرنامج اي ان جملة كتابة او قرائة من هذا الملف بعد استخدام هذه الدالة سيكون مصيرها الفشل و اظهار خطأ و هذه الدالة تأخذ باراميتر واحد وهو متغير مقبض التعامل مع الملف handle و تكتب عادة في نهاية استخدام الملفات اي عندما ينتهي المبرمج من التعامل مع الملفات و تكتب كالتالي :
كود PHP:
<?php
$handle = fopen("f.txt" , "w");
for($i=1;$i<=10;$i++)
{
fwrite($handle,$i);
}
fclose($handle);
?>
لاحظ كيف تم كتابتها في السطر الأخير
اذا الخوارزمية للتعامل مع الملفات هي كالتالي :
1 - فتح و تعريف و تحديد مقابض الملفات التي سيتم التعامل معها خلال البرنامج
2 - فحص اذا ما كنا قد وصلنا الى نهاية الملف في حال اردنا القرائة من ملف
3 - القرائة او الكتابة على الملف داخل الدوران و اجراء العمليات المطلوبة داخل هذا الدوران
4 - اغلاق مقابض الملفات المفتوحة
و في الدرس القادم سنطرح 3 امثلة مع الشرح التفصيلي للتعامل مع الملفات مثل الكتابة و القرائة و اجراء العمليات الحسابية و سنطرح بعض الأمثلة على الأستخدام في المشاريع الكبيرة و البرمجيات العملاقة
و تحياتي لكم جميعا
مواقع النشر (المفضلة)