سلام، امیدوارم که خوب باشید. یکی از دوستان با ایمیل ازم در مورد نحوه include کردن صفحات تو PHP سوال کرد. من هم تصمیم گرفتم هم برای ایشون و هم برای کسانی که ممکنه سوال مشابهی داشته باشن این روش رو آموزش بدم.
برای شروع لازم میدونم که بگم من از یک صفحه آماده شده که قبلا در وبلاگم نحوه ساخت این صفحه رو آموزش داده بودم استفاده میکنم. پیشنهاد میکنم حتما این آموزش رو بخونید چون روی کد اون آموزش میدم بهتر متوجه میشین، بعد از این آموزش میبینید که به چه راحتی میتونید این کار رو روی سایر وب سایتها هم انجام بدین.
هدف از این کار چیست ؟

قبل از شروع باید این نکته رو بگم که هدف از include کردن چیه ؟ در وب سایتهای بزرگ و حجیم معمولا نمیشه به روش وب سایتهای ساده و کم حجم صفحه هارو مدیریت کرد. چون تعداد صفحه ها خیلی بالا هست تغییر در یک قسمت وب سایت مستلزم صرف وقت و انرژی زیادی میشه، برای همین یکی از موثرترین روشها برای مدیریت این صفحه ها استفاده از Include در زبان PHP هست (البته در زبانهای دیگر هم این روش امکان پذیر هست اما با دستورهای مربوط به آن زبان). من تصویر وب سایت مربوطه رو که قراره روی اون کار کنیم رو در اینجا به صورت بخش بندی شده قرار میدم :

همونطور که میبینید من این سایت رو به چند بخش تقسیم کردم. header, navigation, content, sidebar و siteinfo. فرض کنید سایت شما دارای 100 صفحه باشد و شما در هر صفحه کل کدهای مریوط رو نوشتید، بعد از مدتی به فکرتون میرسه که بهتره یک لینک دیگه به قسمت navigation اضافه کنید، خب ظاهرا کار آسونیه ! ولی برای یک صفحه نه برای 100 صفحه ! اما اگه هنگام شروع ساخت وب سایت فکر اینجارو بکنید هیچوقت به این مشکل نمیخورید.
راه حل

اما راه حل، برای رفع این مشکل میتونیم سایتمون رو به اون قسمتهایی که در شکل بالا دیدید تقسیم کنیم. اما روش کار به چه صورت است ؟ معمولا همه سایتهای کوچک و بزرگ از شکل بالا پیروی میکنن، حالا ممکنه که چند قسمت هم بیشتر داشته باشن ولی در حالت کلی بدین شکل هستند. من کل کد را در اینجا میذارم وبعد شروع به بخش بندی میکنم :


کد:
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>My Website</title> <link href="main.css" rel="stylesheet" type="text/css"> </head> <body> <div id="container"> <div id="header"> <h1 id="header_title"> Welcome to my Site </h1> <h2 id="slogan"> A Webdesigner Portfolio </h2> <div id="navigation"> <ul id="main_nav"> <li id="home"><a href="#" title="home">home</a></li> <li id="about"><a href="#" title="about">about</a></li> <li id="portfolio"><a href="#" title="portfolio">portfolio</a></li> <li id="services"><a href="#" title="services">services</a></li> <li id="contact"><a href="#" title="contact">contact</a></li> </ul> </div> </div> <div id="content"> <h1 id="content_header"> What Can I Do For You ? </h1> <p id="main_content"> Lorem ipsum vis eu hinc animal iuvaret, agam munere apeirian cum in. Erroribus suscipiantur ad vim. Eu qui euismod appetere scriptorem, duo in unum porro. Erant alterum cu qui, mea ut partiendo pertinacia, an sea viris alienum. Ea duo viris intellegat, nam ut quando elaboraret. Populo omnium appetere et eos. Dicant docendi nominavi mel an, eam an probo consul. Eu has quem blandit maiestatis, soleat fierent ex ius. Et cum facete propriae, mei eu aliquid urbanitas interesset. Nam ex docendi omittantur. Duo cetero laboramus ei, cu dolores accumsan persecuti ius. Liber vivendo vix id, mel ad omnis voluptatibus. Pri an accumsan appareat singulis, ne mel veri epicurei philosophia, te nam enim sonet dolorum. Vis an sadipscing dissentiunt. Atqui omnium eos id, ei senserit erroribus sed. Est aeterno virtute id, harum aperiri graecis vel eu. Posse quidam nostrud mel no, habeo adipisci at mel. Has munere audire aperiam cu. Ex vix cetero euripidis, ius tantas perfecto similique ne. Ea duo mundi detracto appareat, pri vocent menandri prodesset ex. Vide labores te vix. Illud aliquam eum ad. Mel in illud vidisse, nec tota iudicabit ad, pericula honestatis eum cu. Qui sonet utroque gloriatur id.</p> </div> <div id="sidebar"> <h3 id="recent_work_title"> My Recent Works </h3> <div class="portfolio_image"> <a href="#"><img src="images/portfolio_1.jpg" alt="Image 1" width="104" height="104"></a> </div> <div class="portfolio_image"> <a href="#"><img src="images/portfolio_2.jpg" alt="Image 2" width="104" height="104"></a> </div> </div> <div id="siteinfo"> <h4 id="siteinfo_title"> www.mysite.com </h4> <ul id="siteinfo_nav"> <li><a href="#" title="home">home</a></li> <li><a href="#" title="about">about</a></li> <li><a href="#" title="portfolio">portfolio</a></li> <li><a href="#" title="services">services</a></li> <li><a href="#" title="contact">contact</a></li> </ul> </div> </div> </body> </html>
با توجه به شکل سایت من ابتدا قسمت header سایت را جدا میکنم و آنرا در یک صفحه به نام header.php ذخیره میکنم، بدین صورت :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>My Website</title> <link href="main.css" rel="stylesheet" type="text/css"> </head>
قسمت بعد navigation هست که کد آنرا از کل کد جدا و در صفحه navigation.php قرار میدهم :
<body> <div id="container"> <div id="header"> <h1 id="header_title"> Welcome to my Site </h1> <h2 id="slogan"> A Webdesigner Portfolio </h2> <div id="navigation"> <ul id="main_nav"> <li id="home"><a href="#" title="home">home</a></li> <li id="about"><a href="#" title="about">about</a></li> <li id="portfolio"><a href="#" title="portfolio">portfolio</a></li> <li id="services"><a href="#" title="services">services</a></li> <li id="contact"><a href="#" title="contact">contact</a></li> </ul> </div> </div>
همینطور برای content و ذخیره آن در صفحه content.php :
<div id="content"> <h1 id="content_header"> What Can I Do For You ? </h1> <p id="main_content"> Lorem ipsum vis eu hinc animal iuvaret, agam munere apeirian cum in. Erroribus suscipiantur ad vim. Eu qui euismod appetere scriptorem, duo in unum porro. Erant alterum cu qui, mea ut partiendo pertinacia, an sea viris alienum. Ea duo viris intellegat, nam ut quando elaboraret. Populo omnium appetere et eos. Dicant docendi nominavi mel an, eam an probo consul. Eu has quem blandit maiestatis, soleat fierent ex ius. Et cum facete propriae, mei eu aliquid urbanitas interesset. Nam ex docendi omittantur. Duo cetero laboramus ei, cu dolores accumsan persecuti ius. Liber vivendo vix id, mel ad omnis voluptatibus. Pri an accumsan appareat singulis, ne mel veri epicurei philosophia, te nam enim sonet dolorum. Vis an sadipscing dissentiunt. Atqui omnium eos id, ei senserit erroribus sed. Est aeterno virtute id, harum aperiri graecis vel eu. Posse quidam nostrud mel no, habeo adipisci at mel. Has munere audire aperiam cu. Ex vix cetero euripidis, ius tantas perfecto similique ne. Ea duo mundi detracto appareat, pri vocent menandri prodesset ex. Vide labores te vix. Illud aliquam eum ad. Mel in illud vidisse, nec tota iudicabit ad, pericula honestatis eum cu. Qui sonet utroque gloriatur id.</p> </div>

قسمت sidebar و ذخیره آن در sidebar.php :


کد:
 
<div id="sidebar"> <h3 id="recent_work_title"> My Recent Works </h3> <div class="portfolio_image"> <a href="#"><img src="images/portfolio_1.jpg" alt="Image 1" width="104" height="104"></a> </div> <div class="portfolio_image"> <a href="#"><img src="images/portfolio_2.jpg" alt="Image 2" width="104" height="104"></a> </div> </div>
و در نهایت siteinfo و صفحه siteinfo.php :
<div id="siteinfo"> <h4 id="siteinfo_title"> www.mysite.com </h4> <ul id="siteinfo_nav"> <li><a href="#" title="home">home</a></li> <li><a href="#" title="about">about</a></li> <li><a href="#" title="portfolio">portfolio</a></li> <li><a href="#" title="services">services</a></li> <li><a href="#" title="contact">contact</a></li> </ul> </div> </div> </body> </html>
خب دیدید که تا اینجا خیلی کار ساده ای بود بعد از این هم همینطوره تنها کاری که میمونه اینه که این صفحه هایی رو که ساختیم رو در یک جا قرار بدیم، برای مثال برای صفحه index.php بدین صورت هست :
کد:
  
<?php include ("header.php"); ?> <?php inculde ("navigation.php"); ?> <?php include ("content.php"); ?> <?php include ("sidebar.php"); ?> <?php include ("siteinfo.php"; ?>


حال برای مثال با اضافه کردن یک لینک به صفحه navigation.php این تغییر در کل صفحه هایی که navigation.php در آنها include شده است اعمال میشود. لزوما همه صفحه ها نباید ساختار صفحه index.php رو داشته باشن اما در حالت کلی این ساختار یک وب سایت ساده هست. شما میتونید با توجه به نیازتون این ساختار رو تغییر بدین
پیشاپیش سال خوبی رو براتون آرزو میکنم