الدرس 15: القراءة من ملف نصي

في الدرس السابق تعلمنا كيف نستخدم PHP للوصول إلى نظام الملفات في المزود، في هذا الدرس سنستخدم ما تعلمناه لقراءة ملف نصي عادي.

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

فتح ملف نصي

يمكننا استخدام أمر توثيقfopen لفتح ملف نصي ويكتب الأمر بهذا الشكل:


	fopen(filename, mode)
	
	
filename
اسم الملف الذي تريد فتحه.
mode
الطريقة يمكن أن تحدد بحرف "r" للقراءة (reading) أو "w" للكتابة (writing) أو "a" للإلحاق (appending)، في هذا الدرس سنشرح فقط كيف تقرأ الملف لذلك سنستخدم "r"، في الدرس التالي سنتعلم الكتابة والإلحاق في الملف النصي.

الأمثلة في هذا الدرس تستخدم ملفاً نصياً هو unitednations.txt، الملف يحوي قائمة بسيط لبرامج ومعونات الأمم المتحدة وعناوين مواقع هذه البرامج، بإمكانك تنزيل الملف أو إنشاء ملف خاص بك لتختبره.

أولاً لنجرب فتح ملف unitednations.txt:


	<?php

	// Open the text file
	$f = fopen("unitednations.txt", "r");

	// Close the text file
	fclose($f);

	?>

	
	

مثال 1: قارئة سطر من ملف نصي

مع وظيفة توثيقfgets يمكن قراءة سطر من ملف نصي، هذه الطريقة تقرأ السطر حتى تصل إلى نهايته.


	<html>

	<head>
	<title>Reading from text files</title>
	</head>
	<body>

	<?php

	$f = fopen("unitednations.txt", "r");

	// Read line from the text file and write the contents to the client
	echo fgets($f); 

	fclose($f);

	?>

	</body>
	</html>
	
	

مثال 2: قراءة كل الأسطر في ملف نصي


	<html>

	<head>
	<title>Reading from text files</title>
	</head>
	<body>

	<?php

	$f = fopen("unitednations.txt", "r");

	// Read line by line until end of file
	while(!feof($f)) { 
	    echo fgets($f) . "<br />";
	}

	fclose($f);

	?>

	</body>
	</html>
	
	

في المثال الحلقة تقرأ كل سطر وتستخدم الوظيفة توثيقfeof (for end-of-file) لتتأكد إن وصلت لنهاية الملف أم لا، فإن لم تصل سيكتب السطر.

بدلاً من استخدام حلقة لكل السطور يمكن تحقيق نفس النتيجة من خلال الوظيفة توثيقfread، إن كنت تعمل على ملف نصي كبير بآلاف الأسطر فاعلم أن توثيقfread تستخدم المزيد من الموارد أكثر من توثيقfgets، للملفات الصغيرة لن يشكل هذا فرقاً كبيراً.

المثال 3: دليل روابط بسيط

كما ذكر في بداية هذا الدرس، الملف النصي هو وسيلة رائعة لحفظ البيانات، ويتضح هذا في المثال التالي حيث سننشأ دليل روابط بسيط من محتويات الملف النصي unitednations.txt.

الملف كتب بطريقة نظامية حيث اسم البرنامج متبوعاً بفاصلة ثم موقع البرنامج، كما تتخيل يمكن إضافة المزيد من المعلومات بسهولة في هذا الملف الذي يحوي بيانات مفصولة بفاصلة.

للحصول على المعلومات من كل سطر علينا استخدام المصفوفة، اقرأ الدرس الثامن للمزيد من المعلومات حول المصفوفات.


	<html>
	<head>
	<title>Reading from text files</title>

	</head>
	<body>

	<?php
	$f = fopen("unitednations.txt", "r");

	// Read line by line until end of file
	while (!feof($f)) { 

	// Make an array using comma as delimiter
	   $arrM = explode(",",fgets($f)); 

	// Write links (get the data in the array)
	   echo "<li><a href='http://' . $arrM[1] . "'>" . $arrM[0]. "</a></li>"; 

	}

	fclose($f);
	?>

	</body>
	</html>
	
	

مفيد جداً، أليس كذلك؟ مبدئاً يمكنك الآن إضافة المئات من الروابط إلى الملف النصي أو بإمكانك إضافة مزيد من المعلومات.

في الدرس التالي سنلقي نظرة على كيفية الكتابة في ملف نصي.



<< Lesson 14: نظام ملفات

Lesson 16: الكتابة في ملف نصي >>