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

ما هو الملف؟
الملف هو ببساطة مصدر لتخزين المعلومات على جهاز الكمبيوتر.
تُستخدم الملفات عادةً لتخزين معلومات مثل:
- إعدادات التكوين للبرنامج
- بيانات بسيطة مثل أسماء جهات الاتصال مقابل أرقام الهواتف.
- الصور والرسومات والوسائط المشابهة.
دعم تنسيقات ملفات 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 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 في المتصفح.
سوف تحصل على الصفحة التالية.
ملاحظة: إذا كان القرص الخاص بك ممتلئًا أو ليس لديك إذن لكتابة الملفات، فستتلقى رسالة خطأ.
العودة إلى 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 | يستخدم لإرجاع محتويات الملف كسلسلة |


