التعامل مع الملفات
في هذا الدرس سوف تتعلم كيف تقوم بتخزين البيانات في ملفات وكيف تقوم بقراءة هذه البيانات وكيفية التعامل مع هذه الملفات.
بواسطة الـphp يمكنك تخزين البيانات إما بقاعدة بيانات أو في ملف
في هذا الدرس سوف تتعلم كيفية تخزين البيانات في ملف وكيفية استخدام هذه البيانات والاستفادة منها
تتم عملية معالجة البيانات بالخطوات التالية:
الكتابة في ملف:
1- فتح الملف الذي يكون قد تم إنشاءه مسبقاً أو يقوم البرنامج بإنشاءه.
2- الكتابة في الملف.
3- إغلاق الملف.
القراءة من ملف:
1- فتح الملف.
2- قراءة البيانات من الملف.
3- إغلاق الملف.
طريقة فتح الملف:
تستخدم الدالة fopen()، تحتاج هذه الدالة لتحديد العملية التي نرغب بالقيام بها للملف وهي كالتالي:
r: القراءة من الملف من بدايته.
r+: القراءة والكتابة من الملف من بدايته.
w:الكتابة بالملف من بدايته مع حذف المحتويات الموجودة مسبقاً إن وجدت، وإذا لم يكن الملف موجوداً يتم إنشاءه.
w+:الكتابة والقراءة من الملف من بدايته مع حذف المحتويات الموجودة مسبقاً إن وجدت، وإذا لم يكن الملف موجوداً يتم إنشاءه.
a:الكتابة بالملف بدءاً من نهاية محتوياته، وإذا لم يكن الملف موجوداً يتم إنشاءه.
a+:الكتابة والقراءة من الملف بدءاً من نهاية محتوياته، وإذا لم يكن الملف موجوداً يتم إنشاءه.
ومما ورد ذكره لنفتح الملف المسمى names.txt والموجود مثلاً داخل مجلد اسمه script نستخدم الأمر التالي:
$fileopen = fopen("script/names.txt", "w");
?>
وباستخدام هذا الأمر سوف يتم فتح الملف المطلوب والكتابة به من بدايته وحذف البيانات الموجودة مسبقاً إن وجدت، وسوف يقوم الأمر تلقائياً بإنشاء الملف إذا لم يكن موجوداً
(هذا ماسوف يقوم البرنامج بسبب استخدام w في البارامتر الثاني للدالة fopen)
طريقة الكتابة بالملف:
للكاتبة داخل الملف الذي قمنا بفتحه بالخطوة السابقة نستخدم الدالة fwrite()
ويتم كتابة الدالة بالشكل التالي:
fwrite ($fileopen, $thenames);
?>
حيث المتغير fileopen هو المتغير الذي أنشأناه في الخطوة السابقة والمتغير $thenames هو المتغير الذي سنضع به الأسماء التي سوف نخزنها في الملف وسوف يكون كالتالي:
$thenames = "mohammed, ali, mahmoud";
?>
طريقة إغلاق الملف:
لإغلاق الملف نستعمل الدالة fclose() كالتالي:
fclose($fileopen);
?>
تلخيص للخطوات السابقة:
في الخطوات الثلاثة السابقة قمنا بفتح الملف المسمى name.txt والموجود داخل المجلد script وقمنا بكتابة الاسماء الثلاثة (محمد وعلي ومحمود) ثم قمنا بإغلاق الملف
ملاحظة:
لكي يتمكن المستخدم من الكتابة بالملف راجع درس النماذج للتمكن من عمل نموذج يتم بواسطته إدخال البيانات إلى الملف.
القراءة من الملفات:
للقراءة من ملف يجب في البداية فتح هذا الملف كما ذكرنا سابقا ولفتح الملف الذي قمنا بالكتابة عليه في الخطوة السابقة نستخدم الأمر:
$fileopen = fopen("script/names.txt", "r");
?>
لاحظ أنه نفس الأمر الذي استخدمناه سابقاً مع استبدال w بـr
ثم للقراءة من الملف نستخدم الدالة fgets كالتالي (تستخدم هذه الدالة لقراءة سطر كل مرة):
$read = fgets($fileopen, 50);
?>
سوف تقوم هذه الدالة بقراءة سطر من الملف كل مرة أو تقراً عندما تصل إلى 50 بايتاً، وإذا لم تحدد البايتات في الدالة تستخدم القيمة الإفتراضية وهي 1024 بايت (1 كيلو بايت)
ثم لإغلاق الملف نستعمل الدالة fclose() كالتالي:
fclose($fileopen)
?>
أو بإمكانك استخدام الدالة readfile() لقراءة الملف بأكمله بالشكل التالي بدلاً من الخطوات السابقة:
readfile ("script/names.txt");
?>
ملاحظة: يوجد عدد من الدوال الأخرى للتعامل مع الملفات لن يستنى لنا ذكرها، يمكنك مراجعة php.net للتعرف عليها جميعها.