مقدمه :
به وسیله تابع های ( ) include و ( ) require ، می توانید محتویات یک صفحه را درون یک صفحه دیگر وارد نمایید . در این حالت سرور PHP ، در هنگام اجرای صفحه ، محتویات صفحه وارد شده را با صفحه اصلی ادغام کرده و به صورت یکجا نمایش می دهد .
اما این کار چه فایده ای دارد ؟
با یک مثال توضیح می دهیم . فرض کنید که یک سایت ساده دارید که طراحی هر صفحه آن به صورت زیر است :
یک بخش ثابت هدر و یک بخش ثابت منو در سمت راست ، که در تمام صفحات تکرار می شوند . به علاوه یک بخش محتویات صفحه در وسط و سمت چپ صفحه ، که برای هر صفحه دارای محتویات متفاوتی است . تقریبا شبیه طراحی سایت خود ما !!
در این حالت شما برای طراحی این سایت 2 راه حل دارید :
- کد هدر و منو را در هر صفحه با copy و paste کردن و به صورت تکراری در کنار سایر محتویات در هر صفحه قرار دهید .
- کدر هدر را در یک فایل PHP به نام هدر و کد منو را در یک فایل دیگر PHP به نام منو قرار دهید . همچنین محتویات هر صفحه را در خود آن صفحه قرار دهید . سپس محتویات هدر و منو را با به کار بردن تابع ( ) include و یا ( ) require و اشاره به نام فایل کد آنها ، در درون هر صفحه وارد نمایید . در این حالت سرور PHP در هنگام اجرای هر صفحه ، محتویات فایل های هدر و منو را با محتویات خود صفحه ترکیب کرده و خروجی را تولید می کند .
این کار باعث صرفه جویی وقت و انرژی زیادی در هنگام طراحی صفحات وب می شود . زیرا دیگر نیازی ندارید کد بخش های تکراری را در درون هر صفحه قرار داده و فقط با یک دستور ساده ، آنها را فراخوانی می کنید .
اما فایده دوم و بسیار مهم تر این ترفند ، که کار شما را برای به روز رسانی سایتتان فوق العاده ساده خواهد کرد .
با استفاده از این راهکار هر زمان که بخواهید کد هدر و یا منوی سایت خود که اجزاء تکراری سایت محسوب می شدند ،را تغییر دهید ، به جای اینکه لازم باشد کد آنها را به صورت تک تک در هر صفحه تغییر دهید ، فقط یکبار کد فایل های منو یا هدر را تغییر داده و این تغییر در تمام صحفات سایت اعمال خواهند شد .
به این شیوه در PHP و یا در ASP.Net ، ساخت مستر پیچ یا صفحات مادر گفته می شود . از صفحات مادر می توان برای طراحی سریع سایر صفحات استفاده نمود . در یک سایت شما می توانید به تعداد دلخواه و مورد نیاز و برای هر بخش ، یک صفحه مادر مخصوص طراحی نمایید .
تفاوت تابع های ( ) include و ( ) require :
گفتیم که از تابع های ( ) include و یا ( ) require برای ساخت مستر پیچ ها استفاده می شود . اما این دو تابع با هم چه تفاوتی دارند . این دو تابع در هر حالت با هم یکسان هستند ، به جز مورد زیر :
- اگر در هنگام کار با تابع include مشکلی برای اجرای صفحه پیش آید ، سرور یک پیام هشدار معمولی صادر کرده ، ولی صفحه را لود و اجرا می کند .
- اما چنانچه برای پردازش صفحه در هنگام کار با تابع ( ) require مشکلی پیش بیاید ، سرور پردازش را متوقف کرده و صفحه دیگر اجرا نمی شود .