التعامل مع PHP File () ووظائفه

⚡ ملخص ذكي

تستخدم معالجة الملفات في PHP مجموعة غنية من الدوال المدمجة لإنشاء الملفات وقراءتها وكتابتها ونسخها وحذفها على الخادم. يشرح هذا الدليل الدوال file_exists وfopen وأوضاعها وfwrite وfclose وfgets وcopy وunlink وfile_get_contents مع أمثلة عملية.

  • 📄 ما هي الملفات التي يتم تخزينها؟ تحتوي الملفات على إعدادات التكوين والسجلات والبيانات البسيطة، مما يوفر خيار تخزين دائم رخيص الثمن مقارنة بقاعدة البيانات.
  • 🔍 فحص الملفات: تتحقق الدالة file_exists() من وجود الملف قبل قراءته أو إنشائه، مما يجنب حدوث الأخطاء.
  • 📂 فتح الملفات: تقوم الدالة fopen() بفتح ملف في وضع مثل r أو w أو a، والذي يتحكم في القراءة والكتابة والإلحاق.
  • ✍️ الكتابة والختام: تقوم الدالة fwrite() بإرسال البيانات إلى مؤشر الملف، وتقوم الدالة fclose() بتحرير المؤشر عند الانتهاء من العمل.
  • ؟؟؟؟ قراءة الملفات: تقرأ الدالة fgets() سطرًا واحدًا في كل مرة، بينما تقوم الدالة file_get_contents() بإرجاع الملف بأكمله كسلسلة نصية واحدة.
  • 🗂️ نسخ وحذف: تقوم الدالة copy() بنسخ ملف إلى مسار جديد، بينما تقوم الدالة unlink() بحذف ملف بشكل دائم من الخادم.
  • 🤖 مساعدة الذكاء الاصطناعي: يمكن لأدوات الذكاء الاصطناعي إنشاء رمز تحليل الملفات وحل أخطاء الأذونات أو أخطاء فشل فتح التدفق بسرعة.

معالجة الملفات باستخدام لغة PHP

ما هو الملف؟

الملف هو ببساطة مصدر لتخزين المعلومات على جهاز الكمبيوتر.

تُستخدم الملفات عادةً لتخزين معلومات مثل:

  • إعدادات التكوين للبرنامج
  • بيانات بسيطة مثل أسماء جهات الاتصال مقابل أرقام الهواتف.
  • الصور والرسومات والوسائط المشابهة.

دعم تنسيقات ملفات PHP

تدعم وظائف ملف PHP مجموعة واسعة من تنسيقات الملفات التي تشمل:

  • ملف.txt
  • ملف.log
  • File.custom_extension، أي file.xyz
  • ملف.csv
  • ملفات بصيغة GIF وملفات بصيغة JPG وصيغ صور مماثلة

تُعد الملفات مفيدة في العديد من المواقف:

  • إنها توفر حلاً دائماً وفعالاً من حيث التكلفة لتخزين البيانات البسيطة، مقارنة بقواعد البيانات التي تتطلب برامج ومهارات أخرى لإدارة أنظمة إدارة قواعد البيانات.
  • تريد تخزين بيانات بسيطة مثل سجلات الخادم لاسترجاعها وتحليلها لاحقًا.
  • تريد حفظ إعدادات البرنامج، أي ملف program.ini

وظائف ملفات PHP

توفر لغة PHP طريقة ملائمة للعمل مع الملفات من خلال مجموعتها الغنية من الوظائف المدمجة.

Operaأنظمة ting مثل Windows و macOS لا تُميّز هذه الأحرف بين الأحرف الكبيرة والصغيرة، بينما لينكس or يونكس أنظمة التشغيل حساسة لحالة الأحرف.

إن اعتماد اصطلاح تسمية مثل استخدام الأحرف الصغيرة فقط لتسمية الملفات هو ممارسة جيدة تضمن أقصى قدر من التوافق عبر الأنظمة الأساسية.

دعونا الآن نلقي نظرة على بعض وظائف ملفات PHP الأكثر استخدامًا.

PHP file_exists () الوظيفة

تُستخدم هذه الوظيفة لتحديد ما إذا كان الملف موجودًا أم لا.

  • يفيدنا ذلك عندما نريد معرفة ما إذا كان الملف موجودًا قبل معالجته.
  • يمكنك أيضًا استخدام هذه الوظيفة عند إنشاء ملف جديد وتريد التأكد من أن الملف غير موجود بالفعل على الخادم.

تحتوي دالة file_exists على الصيغة التالية.

<?php
file_exists($filename);
?>

هنا،

  • "file_exists()" هي دالة PHP التي تُرجع صحيحًا إذا كان الملف موجودًا وخطأ إذا لم يكن موجودًا.
  • "$filename" هو مسار واسم الملف المراد فحصه

يستخدم الكود أدناه الدالة file_exists لتحديد ما إذا كان الملف my_settings.txt موجودًا.

<?php
if (file_exists('my_settings.txt'))
{
echo 'file found!';
}
else
{
echo 'my_settings.txt does not exist';
}
?>

احفظ الكود أعلاه في ملف باسم file_function.php. بافتراض أنك حفظت الملف في مجلد phptuts داخل htdocs، افتح الملف. URL http://localhost/phptuts/file_function.php في متصفحك. ستظهر لك النتائج التالية.

PHP file_exists () الوظيفة

وظيفة PHP fopen ()

تُستخدم الدالة fopen لفتح الملفات. ولها الصيغة التالية.

<?php
fopen($file_name,$mode,$use_include_path,$context);
?>

هنا،

  • "fopen" هي وظيفة الملف المفتوح في PHP
  • "$file_name" هو اسم الملف الذي سيتم فتحه
  • يُشير "$mode" إلى الوضع الذي يجب فتح الملف به. يوضح الجدول أدناه الأوضاع المتاحة.
المعالم الوصف
r • قراءة الملف من البداية.
• تُرجع القيمة "خطأ" إذا كان الملف غير موجود.
• يقرأ فقط
r+ • قراءة الملف من البداية
• تُرجع القيمة "خطأ" إذا كان الملف غير موجود.
• اقرا و اكتب
w • الكتابة إلى الملف في البداية
• اقتطاع الملف إلى طول صفر
• إذا لم يكن الملف موجودًا، فحاول إنشاءه.
• الكتابة فقط
w+ • الكتابة إلى الملف في البداية، واقتطاع الملف إلى الصفر
• إذا لم يكن الملف موجودًا، فحاول إنشاءه.
• اقرا و اكتب
a • إلحاق الملف في النهاية
• إذا لم يكن الملف موجودًا، فحاول إنشاءه.
• الكتابة فقط
a+ • إلحاق الملف في النهاية
• إذا لم يكن الملف موجودًا، فحاول إنشاءه
• اقرا و اكتب
  • يُعدّ "$use_include_path" خيارًا اختياريًا، وقيمته الافتراضية هي "خطأ". إذا تم تعيينه إلى "صواب"، فإن الدالة تبحث في مسار التضمين أيضًا.
  • "$context" اختياري ويمكن استخدامه لتحديد دعم السياق.

دالة PHP fwrite ()

تُستخدم وظيفة fwrite للكتابة إلى الملفات.

يحتوي على الصيغة التالية.

<?php
fwrite($handle, $string, $length);
?>

هنا،

  • "fwrite" هي وظيفة PHP للكتابة إلى الملفات
  • "$handle" هو مورد مؤشر الملف
  • "$string" هي البيانات المراد كتابتها في الملف.
  • "$length" اختياري ويمكن استخدامه لتحديد الحد الأقصى لطول الملف.

وظيفة PHP fclose ()

تُستخدم الدالة fclose() لإغلاق ملف مفتوح بالفعل في لغة PHP.

يحتوي على الصيغة التالية.

<?php
fclose($handle);
?>

هنا،

  • "فكلوز" هو وظيفة PHP لإغلاق ملف مفتوح
  • "$handle" هو مورد مؤشر الملف.

لنلقِ نظرة الآن على مثال يقوم بإنشاء ملف my_settings.txt. سنستخدم الدوال fopen و fwrite و fclose.

الكود الموجود أسفل "create_my_settings_file.php" ينفذ المثال أعلاه.

فتح الملف
<?php

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
إغلاق ملف
<?php

fclose($fh);

?>
إنشاء ملف
<?php

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file");

$text = <<<_END

localhost;root;pwd1234;my_database

_END;

fwrite($fh, $text) or die("Could not write to file");

fclose($fh);

echo "File 1 written successfully"; ?>

اختبار الكود

فتح URL http://localhost/phptuts/create_my_settings.php في المتصفح.

سوف تحصل على الصفحة التالية.

وظيفة PHP fclose

ملاحظة: إذا كان القرص الخاص بك ممتلئًا أو ليس لديك إذن لكتابة الملفات، فستتلقى رسالة خطأ.

العودة إلى URL http://localhost/phptuts/file_function.phpما النتائج التي تحصل عليها؟

وظيفة PHP fgets ()

تُستخدم دالة fgets لقراءة ملفات PHP سطرًا بسطر. ولها الصيغة الأساسية التالية.

<?php
fgets($handle);
?>

هنا،

  • دالة "fgets" هي دالة PHP لقراءة أسطر الملفات
  • "$handle" هو مورد مؤشر الملف.

لنلق الآن نظرة على مثال يقرأ ملف my_settings.txt باستخدام وظائف fopen و fgets.

الكود الموجود أدناه read_my_settings.php يطبق المثال أعلاه.

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
?>

هنا،

  • تعمل الدالة "fopen" على إرجاع المؤشر إلى الملف المحدد في مسار الملف
  • يتم استدعاء الدالة "die()" في حالة حدوث خطأ. تعرض هذه الدالة رسالة وتُنهي تنفيذ البرنامج النصي.

نسخة PHP () الوظيفة

تُستخدم دالة النسخ في لغة PHP لنسخ الملفات. ولها الصيغة الأساسية التالية.

<?php
copy($file,$copied_file);
?>

هنا،

  • يحدد "$file" مسار الملف واسم الملف المراد نسخه.
  • يُحدد "$copied_file" مسار واسم الملف المنسوخ

يوضح الكود أدناه التنفيذ.

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 2";
?>

حذف ملف

تُستخدم دالة unlink لحذف ملف. يوضح الكود أدناه كيفية تنفيذها.

<?php
if (!unlink('my_settings_backup.txt'))
{
echo "Could not delete file";
}
else
{
echo "File 1 successfully deleted";
}
?>

دالة PHP file_get_contents ()

يتم استخدام الدالة file_get_contents لقراءة محتويات الملف بالكامل.

الفرق بين file_get_contents و fgets هو أن file_get_contents تُرجع بيانات الملف كسلسلة نصية، بينما fgets تقرأ الملف سطرًا بسطر.

يوضح الكود أدناه التنفيذ.

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

مرجع سريع لوظائف ملفات PHP

يلخص الجدول أدناه وظائف الملفات التي تم تناولها في هذا البرنامج التعليمي.

الوظيفة الوصف
الملف موجود يستخدم لتحديد ما إذا كان الملف موجودًا أم لا
الدالة fopen تستخدم لفتح ملف. إرجاع مؤشر إلى الملف المفتوح
com.fwrite يستخدم للكتابة على الملفات
com.f Close تُستخدم لإغلاق ملف مفتوح
يفسد تستخدم لقراءة ملف سطرا بسطر
نسخة يستخدم لنسخ ملف موجود
فك ارتباط يستخدم لحذف ملف موجود
file_get_contents يستخدم لإرجاع محتويات الملف كسلسلة

الأسئلة الشائعة

تقرأ الدالة fgets سطرًا واحدًا في كل استدعاء، وتقرأ الدالة fread عددًا محددًا من البايتات من مقبض مفتوح، وتقرأ الدالة file_get_contents الملف بأكمله في سلسلة نصية في استدعاء واحد دون الحاجة إلى fopen أو fclose.

تقوم الدالة fwrite بالكتابة إلى مؤشر ملف مفتوح وتحتاج إلى الدالتين fopen و fclose. أما الدالة file_put_contents فتفتح الملف وتكتب إليه وتغلقه في استدعاء واحد، مما يجعلها الخيار الأقصر لعمليات الكتابة البسيطة.

استخدم الدالة `is_writable('file.txt')` لاختبار صلاحية الكتابة قبل الكتابة، والدالة `file_exists()` للتأكد من وجود الملف. في أنظمة يونكس، يمكن للدالة `chmod()` تعديل الصلاحيات إذا كان خادم الويب هو مالك الملف.

نعم. صف التنسيق، مثل CSV أو JSON أو تخطيط سجل، وسيتمكن الذكاء الاصطناعي من إنشاء رمز باستخدام fgetcsv أو json_decode أو حلقة مخصصة، بالإضافة إلى معالجة الأخطاء للملفات المفقودة أو التالفة. اختبر ذلك باستخدام بيانات حقيقية.

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

تلخيص هذه التدوينة بـ: