ساخت صفحات وب به کمک تابع include در PHP

توی این پست قصد دارم نحوه ساخت راحت تر صفحات وب رو برای وب سایت هایی که با استفاده از PHP ایجاد می کنیم آموزش بدم .
توی اکثر صفحاتی که برای یک وب سایت ایجاد می کنیم معمولا فقط بخش وسط صفحه تغییر میکنه و header و footer و sidebar به صورت ثابت توی بقیه صفحه ها تکرار میشن به همین خاطر می تونیم این سه قسمت رو توی سه تا فایل جداگانه قرار بدیم و توی هر صفحه ای که ایجاد می کنیم این فایل ها رو include کنیم و سرعت انجام کار رو بالا ببریم و وقتی هم که می خوایم تم سایت رو تغییر بدیم کارمون راحت تر میشه .

بر فرض اگه کد تمپلیت ما به صورت زیر باشه

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link type="text/css" rel="stylesheet" href="style.css" media="screen"  />
    <title>Site Title</title>
</head>
<body>
    <div id="main" >
    	<!-- header -->
    	<div id="header" ></div>
        <div id="menu" >
     		<a href="home.php" >Home</a>|
            <a href="About.php" >About</a>|
            <a href="Contact.php" >Contact</a>
        </div>
        <!-- /header -->

        <div id="content" ></div>

        <!-- sidebar -->
        <div id="sidebar" ></div>
        <!-- /sidebar -->

        <div class="clear" ></div>

        <!-- footer -->
    	<div id="footer" ></div>
        <!-- /footer -->
    </div>
</body>
</html>

کد های زیر رو از تمپلیت اصلی سایت جدا کرده و با نام header.php ذخیره می کنیم .

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link type="text/css" rel="stylesheet" href="style.css" media="screen"  />
    <title>Site Title</title>
</head>
<body>
    <div id="main" >
    	<!-- header -->
    	<div id="header" ></div>
        <div id="menu" >
     		<a href="home.php" >Home</a>|
            <a href="About.php" >About</a>|
            <a href="Contact.php" >Contact</a>
        </div>
        <!-- /header -->

کدهای زیر رو هم با نام sidebar.php ذخیره می کنیم

        <!-- sidebar -->
        <div id="sidebar" ></div>
        <!-- /sidebar -->

و کدهای زیر رو با نام footer.php ذخیره می کنیم

        <div class="clear" ></div>

        <!-- footer -->
    	<div id="footer" ></div>
        <!-- /footer -->
    </div>
</body>
</html>

حالا وقتی میخوایم یک صفحه جدید ایجاد کنیم فقط کافیه که این سه تا فایل رو include کنیم و اطلاعات مربوط به صفحه جدید رو وارد کنیم .

<?php include_once('header.php'); ?>
<div id="content" > Content  </div>
<?php include_once('sidebar.php'); ?>
<?php include_once('footer.php'); ?>

برای اینکه بتونیم عنوان هر صفحه رو هم مشخص کنیم تگ مربوط به عنوان صفحه رو توی فایل header.php به صورت زیر تغییر میدیم

<title> <?php echo $pagetitle; ?> </title>

و توی هر صفحه ای که ایجاد می کنیم قبل از include کردن فایل header.php این متغیر رو مقداردهی می کنیم تا به عنوان title صفحه قرار بگیرد .

<?php
$pagetitle='Contact';
include_once('header.php');
?>
<div id="content" > Contact Form  </div>
<?php include_once('sidebar.php'); ?>
<?php include_once('footer.php'); ?>

موفق باشید


تا كنون ۱۸ نظر برای اين پست ثبت شده است


  1. jay-rch گقته :

    سلام دوستم
    خوشحال میشم به وب ما هم سری بزنی
    اگه با تبادل لینک موافق بودی ما رو با نام قالب های نفرین شده لینک کن با تشکر
    منتظر شما هستیم

    ۲۳ آذر ۱۳۸۸ در ۸:۰۲ ب.ظ

  2. رضا گقته :

    سلام دوست من
    سایت عزیز و خوشکلی داری
    از قالبش که خیلی خوشم اومده
    میدونم از درخواستم خوشت نمیاد
    چون میخوام بگم
    میشه…
    میشه منم یه همچین قالبی داشته باشم؟؟؟

    ۲۹ آذر ۱۳۸۸ در ۵:۲۶ ق.ظ

  3. علی گقته :

    سلام، خسته نباشید
    آقا پیام میخواستم ببینم میتونم با شما تبادل لینک داشته باشم؟
    لطفا جوابش رو بهم بدید ، خیلی ممنونم.
    خدانگهدار.

    ۷ دی ۱۳۸۸ در ۶:۵۰ ق.ظ

  4. hidensoft گقته :

    سلام .
    خیلی سادست دوست عزیز

    ۱۰ دی ۱۳۸۸ در ۴:۵۱ ق.ظ

  5. علی گقته :

    ممنون پیام جان…
    اگه با تبادل لینک موافقی یه تبادلی داشته باشیم؟؟

    ۱۷ دی ۱۳۸۸ در ۹:۵۳ ب.ظ

  6. علی گقته :

    راستی اگه قسمت ارسال مطالب به ایمیل فید برنر رو هم فعال کنی خیلی خوب میشه…

    ۱۷ دی ۱۳۸۸ در ۹:۵۴ ب.ظ

  7. ماهان گقته :

    مرسی .. کاربردی بود

    ۱۸ دی ۱۳۸۸ در ۵:۵۷ ق.ظ

  8. سوگند گقته :

    مطلب مفیدی بود !

    ۱۹ دی ۱۳۸۸ در ۷:۰۵ ق.ظ

  9. reza گقته :

    سلام
    میشه توضیح بدید چطوری میشه در قالب وبلگ کری کرد که آخرش تمام صفحات بصورت شماره نمایش داده بشن
    یعنی
    کد وردپرسی آن را لطف کنید!

    ۲۴ دی ۱۳۸۸ در ۱۱:۱۲ ب.ظ

  10. رامتین گقته :

    یکی از اصول یه طرح خوب تقسیم کردن صفحه به چندین قسمت مختلفه…..که این تابع اینکارو میکنه.
    افرین.مطلب خوبی بود.
    اگه دوست داشتی با هم تبادل لینک داشته باشیم

    ۷ بهمن ۱۳۸۸ در ۵:۳۲ ب.ظ

  11. ناصـر گقته :

    ,واقعا دمت گرم . خیلی دنبال یه همچین چیزی بودم . دستت درد نکنه . موفق باشی

    ۲۳ بهمن ۱۳۸۸ در ۶:۳۷ ب.ظ

  12. علی گقته :

    باسلام و تشکر
    فایل css راهم توضیح بدید چطور سه تا divرا کار هم بچینیم

    ۲۴ بهمن ۱۳۸۸ در ۹:۱۵ ب.ظ

  13. ATOUSA گقته :

    MOVAFAGH BASHID

    ۲۹ خرداد ۱۳۸۹ در ۸:۰۸ ق.ظ

  14. ندا گقته :

    مرسی فکر کنم مطلبتون خیلی به دردم بخوره.

    ۷ شهریور ۱۳۸۹ در ۱:۱۰ ق.ظ

  15. web2web گقته :

    وردپرس از همین شیوه برای ساخت theme استفاده میکنه.

    ۲۰ مرداد ۱۳۹۰ در ۵:۵۳ ق.ظ

  16. مهران گقته :

    با تشکر از شما

    ولی اینجا یک مشکل پیش میاد مثلا اگه منو به ترتیبی باشه که صفحه ی جاری رو پر رنگ نشون میده
    اونوقت چکار باید کرد تا صفحه جاری توی منو برجسته یا رنگ دیگه باشه

    ۵ خرداد ۱۳۹۲ در ۱۲:۳۷ ق.ظ

  17. پیام گقته :

    برای مشخص کردن لینک صفحه جاری در منوی سایت ، عنوان ، ای دی یا ادرس صفحه جاری رو تشخیص بدید و با تک تک لینک های منو چک کنید و در صورتی که با هم مطابقت داشتن
    یک کلاس مثلا با نام Bold برای لینکتون تعریف کنید و با css استایل موردنظرتون رو بهش بدید .

    موفق باشید

    ۵ خرداد ۱۳۹۲ در ۱۱:۳۴ ق.ظ

  18. haji گقته :

    ممنون
    خسته نباشید

    ۱۶ شهریور ۱۳۹۲ در ۷:۲۷ ق.ظ