رد جديد  مشاركة جديدة 
تضمين الملفات باستخدام include و require
الكاتب الرسالة
Pepo
عضو مميز



المشاركات : 5,096
مجموعة : الاعضاء
الإنتساب : 30-12-2006
الحالة : غير متصل
السمعة : 37
الرد : #1
تضمين الملفات باستخدام include و require

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

من أسهل الدوال التي نتعامل معها بكثرة في برمجياتنا، هي دوال تضمين الملفات، وتستخدم هذه الدوال عند الرغبة في تنفيذ الكود الموجود داخل ملف PHP من ملف آخر.

وكأمثلة على استخدامات هذه الدوال: (الأمثلة على سبيل المثال لا الحصر)
  • تضمين ملف عام - يحتوي على مجموعة من الاجراءات العامة اللازمة لكل ملفات السكريبت - في جميع صفحات السكريبت حتى يتم تنفيذه دائماً.
  • تضمين ملف يحتوي على بيانات قاعدة البيانات في جميع صفحات السكريبت حتى يسهل عملية الاتصال بقاعدة البيانات.
  • تضمين ملف يحتوي على الاعدادات العامة للسكريبت والتي يتم التحقق منها في اماكن كثيرة بالسكريبت.
  • تضمين ملف يحتوي على قائمة عامة يجب ان تتواجد بكل الصفحات، وعند الرغبة في تحديث هذه القائمة يتم تحديثها فقط في ملف واحد فتنعكس التحديثات على جميع صفحات السكريبت.
دوال التضمين: وهي

  1. include()
  2. include_once()
  3. require()
  4. require_once()
واليكم طريقة استخدام كل من هذه الدوال:
أولاً: الدالة include():
تقوم الدالة include بكل بساطة بنسخ الكود الموجود داخل الملف المراد تضمينه والذي يتم تمريره للدالة، ووضعه داخل الملف الأصلي وتنفيذه.
وتستخدم بالطريقة التالي:

كود PHP :
<?
include("filename.ext");
?>

حيث:
filename هو إسم الملف المراد تضمينه، ext هو امتداد الملف.
وتقبل الدالة include اي نوع ملف فلا يشترط ان يكون الملف من النوع php.

مثال1:
بفرض أننا أردنا انشاء ملف يحتوي على قائمة رئيسية يتم استخدامها بكل صفحات السكريبت، وليكن اسمه menu.php، ويحتوي على الكود التالي:

كود PHP :
<html>
<
body>
<
a href="index.php">الرئيسية</a> - 
<
a href="about.php">حول الموقع</a> - 
<
a href="links.php">روابط</a> - 
<
a href="contact.php">اتصل بنا</a> <br /> 

قم بحفظ الكود السابق باسم menu.php ثم قم بانشاء ملف جديد بالاسم index.php في نفس المجلد، وضع فيه الكود التالي:

كود PHP :
<?php include("menu.php"); ?>
<p>مرحباً في الصفحة الرئيسية</p>
</body>
</html> 

الآن ماذا سيرى زوار الصفحة index.php؟
سيروا القائمة الرئيسية وتحتها كلمة مرحباً..
وعند محاولة استعراض مصدر الصفحة يظهر الكود التالي:

كود PHP :
<html>
<
body>
<
a href="index.php">الرئيسية</a> - 
<
a href="about.php">حول الموقع</a> - 
<
a href="links.php">روابط</a> - 
<
a href="contact.php">اتصل بنا</a> <br />
<
p>مرحباً</p>
</
body>
</
html

مما يعني ان الكود داخل الملف menu.php يعامل وكأنه جزء من الملف index.php ولكن مع ميزة فصله عن باقي الملف للتنظيم فقط.


ثانياً: الدالة reauire():
الدالة require تعمل نفس عمل الدالة include المشروحة بأعلى، مع فرق واحد قد لا يعلمه الكثيرون، وهو عند استخدام الدالة include في تضمين ملف غير موجود او اسمه خاطيء يظهر فقط تحذير بأن الملف غير موجود ويستمر السكريبت في العمل بشكل طبيعي.
اما مع require فالوضع مختلف، فعند عدم وجود الملف المطلوب تظهر رسالة خطأ ويتوقف السكريبت عن العمل.
ولتوضيح الفرق بينهما لاحظ المثالين التاليين..

مثال2:

كود PHP :
<?php
include("WrongFileName.php");
echo 
"مرحباً";
?>

عند تنفيذ الكود السابق وبفرض عدم وجود الملف المطلوب، يكون الناتج كالتالي:

كود :
[B]Warning[/B]: main(WrongFileName.php): failed to open stream: No such file or directory in [B]/home/xxxx/index.php[/B] on line [B]2[/B] [COLOR=red]Warning[/COLOR]: main(): Failed opening 'WrongFileName.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in [B]/home/xxxx/index.php[/B] on line 2

مرحباً


مثال3:

كود PHP :
<?php
require("WrongFileName.php");
echo 
"مرحباً";
?>

اما عند تنفيذ الكود في المثال3 فيكون الناتج كالتالي:

كود :
[B]Warning[/B]: main(WrongFileName.php): failed to open stream: No such file or directory in [B]/home/xxxx/index.php[/B] on line [B]2[/B]
[COLOR=red]Fatal error[/COLOR]: main(): Failed opening required 'WrongFileName.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in [B]/home/xxxx/index.php[/B] on line 2

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

اخر مواضيعى

مع التحية Pepo
لولا ان لهذا المنتدى اخوة واخوات مثلكم.. ما كان له وجود حتى الأن
احبكم فى الله
2007-03-21 06:58 PM
زيارة موقع العضو إعرض جميع مشاركات العضو إقتبس الرسالة فى رد

رد جديد  مشاركة جديدة 
تضمين الملفات باستخدام include و require

إحتمالات التقييم ...
المشاركة : الكاتب الردود : المشاهدات : آخر رد
  معرفة عدد الملفات في مجلد معين Pepo 0 358 2007-03-21 06:29 PM
آخر رد: Pepo
  الكتابة الى الملف باستخدام الدالة fwrite Pepo 0 370 2007-03-21 05:26 PM
آخر رد: Pepo
  فتح الملف للقراءة والكتابة باستخدام الدالة fopen Pepo 0 585 2007-03-21 04:11 PM
آخر رد: Pepo
  استبدال جزء من النص باستخدام الدالة str_replace Pepo 0 320 2007-03-21 04:27 AM
آخر رد: Pepo

إشترك بالمشاركة | إضافة المشاركة للمفضلة
الذهاب إلى :