recent
أخبار ساخنة

تضمين الملفات مع بعضها البعض في لغة PHP الدرس |16|

الصفحة الرئيسية
Embed or merge PHP files together

دمج ملفات php متعددة مع بعضها البعض

سوف نتحدث اليوم عن كيفية دمج ملفات php مع بعضها البعض, هناك أربع عناصر يُمكننا إستخدامها لدمج ملفات php مع بعضها, و هم:

include
require
include_once
require_once

سوف نقوم بالشرح لكم ما هو الفرق بين هذه الأربع عناصر التي يمكن إستخدامها لدمج ملفات php مع بعضها.

العنصر include

لنفترض لدينا ملف php آخر غير الحالي و نحفَظُهُ في مجلد العمل مثلاً cs.php, في البداية نقوم بإنشاء أي شيئ بهذا الملف. مثلاً سنكتب متغير يطبع قيمة نصية مثلاً Programmer Tech, و نرغب في نسخ الأكواد من هذا الملف إلى الملف الآخر الأول.

الملف الثاني

<?php
$kaissar = "Programmer Tech";
echo $kaissar;
?>

طريقة دمجها في الملف الاول

<body>
<?php include 'cs.php'; ?>
</body>

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

Print Programmer Tech text from subfile

و نستطيع أيضاً إستدعاء المُتغير بإسمه مثلاً نكتُب أمر echo cs.php و سيطبع ما بداخل ذاك المتغير من الملف الثاني, بإختصار نستطيع نسخ كل شيئ من ملف إلى ملف آخر بسهولة.


العنصر require

عند إستخدامه في الكود السابق سوف يقوم بنفس الغَرَض لكن الفرق بين هذين الإثنين هو عند تسبب خطأ.

على سبيل المثال إذا قُمنا بوضع دمج ملف آخر لكن تم الخطأ بكتابة الإسم الخاص بالملف مثلاً كتبنا إسم الملف الثاني css.php أي اصبح هذا الملف غير موجود.

<body>
<?php require 'css.php'; ?>
</body>


و عند تشغيل الكود سوف يَظهَر خطأ و سيتوقف الموقع عن العمل و يُحدد السطر الذي حدث به هذا الخطأ, عند تشغيل الكود في السيرفر و الإخطاء بالإسم سيكون بالشكل

php server error message
 

و أما بالنسبة لإستخدام include و الأخطاء بإسم الملف الثاني سيتم إظهار الخطأ و يواصل عمل باقي الأكواد بعكس require سيتوقف الموقع كامل عن العمل, فإذا أخطانا بإسم الملف الثاني و كتبنا عنصر آخر بعد أمر php مثلاً

<body>
<?php require 'css.php'; ?>
<h1>Muhammad Alush</h1>
</body>

عند تشغيل الكود سوف نجد النتيجة بالشكل

An error message from the server and a follow-up to the next code

نُلاحظ أنهُ أظهَر خطأ و واصل البرنامج عملهُ و عرض ما بداخل العنصر h1 الذي أنشأناه بعد إظهار الخطأ.


العنصر require_once

عند إستخدامه سوف يقوم بالبحث في الملف هل قُمت سابقاً بدمج ملف بملف آخر أم لا "يحمل نفس الإسم و المسار". في حال قُمت بالدمج المسبق لن يقوم بدمجها, و في حال لم نَقُم بدمجها سابقاً سوف يقوم بدمجها

<body>
<?php require_once 'pr.php'; ?>
<?php require_once 'pr.php'; ?>
<h3>welcome in my website<h3>
</body>

و عند تشغيل الكود ستكون نتيجته

Print Welcome to our website

كما نلاحظ لم يقوم بدمجها مرتين لأنه تحقق بالمرة الثانية و وجدها مدموجة لهذا لم يتم الدمج.


العنصر include_once

نفس الفكرة في حال قُمت سابقاً بدمجها فقط سوف يقوم بالدمج مرة واحدة, و المرة الثانية لن يقوم بدمجها من جديد. عندما تقوم بإستخدام Include تستطيع دمج الملف عشر مرات أو اكثر في نفس الملف.

<body>
<?php include 'pr.php'; ?>
<?php include 'pr.php'; ?>
<h3>welcome in my website<h3>
</body>

و عند تشغيل عذا الكود سنرى النتيجة

Print the site name twice
 

كما نُلاحظ قد تم إستدعائها و دمجها مرتين بعدد المرات التي كتبنا أمر الإستدعاء بها.

لنفترض أنهُ لدينا مُجلد آخر في نفس المجلد الذي نعمل به, سوف نقوم بتسميته مثلاً sp و نُنشئ ملف php آخر ضمن هذا المجلد.

فإذا أردنا دمج أحد الملفات من المجلد الأول و المجلد الذي انشأناه للتو, يُمكن الدمج عن طريق الرجوع خطوة للخلف عن طريق وضع نقطتين ../ و كتابة إسم الملف كما بالمثال الآتي

<body>
<?php include '../cs.php'; ?>
</body>

ملاحظة مهمة:

في حال كُنا نُريد إنشاء العديد من صفحات html في نفس الموقع مثلاً 10 صفحات, و جميع الأكواد الموجودة ضمن وسم head متشابهة و الإختلاف فقط يكون في الأكواد الموجودة في جسم الصفحة body.

فيجب علينا هنا فقط إنشاء ملف html و نضع به اكواد وسم head ضمنه و في باقي صفحات الموقع نستدعيها عن طريق include او require و تحديد مسار و إسم الملف كما يلي بهذا المثال

<!DOCTYPE html>
<html lang="en">
<?php include 'data.php'; ?>
<body>
<h1>welcome in my website</h1>
</body>
</html>

في المثال كان لدينا ملف خاص بوسم head و أسميناه data.php و قُمنا بباقي صفحات الموقع بإستدعاءه كما بالطريقة في الكود السابق.

لا نقوم بكتابة أي شيئ خاص بوسم head في باقي الصفحات, و أي تعديل أو إضافة على الملف الذي يحتوي على اكواد head سوف يتطبق على جميع صفحات الموقع.

إضغط هنا لقراءة الدرس السابق

google-playkhamsatmostaqltradent