الدرس السادس عشر: الكتابة في ملف نصي

في الدرس الماضي تعلمنا القراءة من ملف نصي، في هذا الدرس سنتعلم كيف نكتب في ملف نصي.

هناك طريقتان متشابهتان لكن بفرق واحد: يجب أن يكون لديك صلاحية الكتابة في ملف، هذا يعني أن الملف يجب أن يوضع في مجلد حيث تملك الصلاحية التي تخول لك فعل ذلك.

إن كنت تعمل في حاسوبك يمكنك أن تحدد هذه الصلاحية بنفسك: اضغط بالزر الأيمن على مجلد ثم اختر "Properties"، في شركات استضافة المواقع سيكون هناك في الغالب مجلد واحد يسمح لك بكالكتابة فيه، المجلد يسمى غالباً "cgi-bin" أو "log" أو "databases" أو شيء مماثل، وإذا سمح لك مستضيف موقعك يمكنك أن تغير الصلاحيات بنفسك، غالباً من خلال الضغط بالزر الأيمن على المجلد من خلال برنامج FTP لنقل الملفات، اختر "properties" أو "permissions" أو شيء مماثل، صورة الشاشة أدناه تعرض كيف ينجز ذلك من خلال برنامج FileZilla.

FileZilla

اقرأ المزيد حول الموضوع من خلال صفحات الدعم لمستضيف موقعك.

لاحظ أن الملف النصي - وليس ملف PHP - يحتاج إلى أن يكون في مجلد له صلاحية الكتابة.

فتح الملف النصي للكتابة فيه

بنفس الطريقة عندما عند قراءة ملف نصي نستخدم الوظيفة توثيقfopen أيضاً للكتابة، لكن هذه المرة نغير الطريقة إلى "w" للكتابة (writing) أو "a" للإلحاق (appending).

الاختلاف بين الكتابة والإلحاق هو في مكان مؤشر الكتابة، إما أن يكون في بداية أو نهاية الملف النصي.

في أمثلة هذا الدرس تستخدم ملفاً نصياً فارغاً باسم textfile.txt، لكن يمكنك إنشاء ملفك النصي الخاص إذا أردت.

أولاً لنجرب فتح الملف النصي للكتابة:


	<?php

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

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

	?>
	
	

مثال 1: كتابة سطر في الملف النصي

لكتابة سطر يجب أن تستخدم الوظيفة توثيقfwrite لفعل هذا، بهذا الشكل:


	<html>

	<head>
	<title>Writing to a text file</title>
	</head>
	<body>
	
	<?php

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

	// Write text line
	fwrite($f, "PHP is fun!"); 

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

	// Open file for reading, and read the line
	$f = fopen("textfile.txt", "r");
	echo fgets($f); 

	fclose($f);

	?>

	</body>
	</html>
	
	

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

مثال 2: إضافة كتلة من النص إلى الملف

بالطبع يمكنك أن تضيف كتلة من النص بدلاً من سطر واحد، بهذا الشكل:


	<html>
	<head>
	<title>Write to a text file</title>
	</head>
	<body>

	<?php

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

	// Write text
	fwrite($f, $_POST["textblock"]); 

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

	// Open file for reading, and read the line
	$f = fopen("textfile.txt", "r");

	// Read text
	echo fgets($f); 
	fclose($f);

	?>
	
	</body>

	</html>
	
	

في الدرس التالي سنلقي نظرة على وسيلة أخرى لحفظ البيانات: قواعد البيانات.



<< Lesson 15: القراءة من ملف نصي

Lesson 17: قواعد البيانات >>