如何使用php

时间:2016-02-20 21:18:43

标签: php

我正在为我的网站制作一个结构,我的侧边栏有问题。我想为每个页面都有一个独特的侧边栏内容,但我不知道我该怎么做。我创建了一个CSS文件夹,让我的style.css在根目录下有一个名为index.php和template.php的文件,一个用于分组我所有页面的页面文件夹,在这个文件夹中有一个名为index.php的文件。

位于根目录的index.php具有此内容(它允许定义每个不同页面中的每个内容):

<?php

if(!isset($_GET["p"]))
{
    $_GET["p"]="index";
}

if(!file_exists("pages/".$_GET["p"].".php"))
{
    $_GET["p"]="404";
}

ob_start();

include "pages/".$_GET["p"].".php";

$page_content = ob_get_contents();

ob_end_clean();

include "template.php";

?>

我的模板文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title><?= $page_title; ?></title>
        <link href="css/style.css" rel="stylesheet">
    </head>
    <body id="<?= $page_id; ?>">
        <div id="header">
            <div class="wrapper">
                <div id="logo">
                    <a href="#">Logo</a>
                    <p>Pellentesque in velit egestas, mattis metus vitae, hendrerit nunc. Nulla facilisi. Vestibulum at felis nec nunc ornare semper eu sit amet massa.</p>
                </div>
            </div>
        </div>
        <div class="wrapper">
            <div id="navigation">
                <ul class="unstyled-list">
                    <li>
                        <a href="#" class="home active">Accueil</a>
                    </li>
                    <li>
                        <a href="#">Utilisateurs</a>
                    </li>
                    <li>
                        <a href="#">Achats</a>
                    </li>
                    <li>
                        <a href="#">À propos de nous</a>
                    </li>
                </ul>
            </div>
            <div id="container">
            <?php if($sidebar): ?>
                <div id="main-sidebar-divider">
                    <div id="second-sidebar-divider">
            <?php endif; ?>
                <h1 class="page-title"><?= $page_title; ?></h1>
                <?= $page_content; ?>
            <?php if($sidebar): ?>
                    </div>
                </div>
                <div id="sidebar">
                    <?= $sidebar_content; ?>
                </div>
            <?php endif; ?>
            </div>
        </div>
    </body>
</html>

如您所见,我有一个变量$ page_content。这允许我为每个页面提供唯一的内容,但对于侧边栏,我不知道我该怎么做。要为每个页面添加不同的内容,现在很容易。我只是在我的页面中添加我想要的内容,如:

<?php 

$page_title = "Home";
$page_id = "home";
$sidebar = true;

?>

<p>CONTENT HERE FOR THE HOME</p>

结果:http://prntscr.com/a5vegt

你可以在屏幕上看到侧边栏的错误,因为正如你所看到的,我放了一个变量$ sidebar_content。我想为每个页面添加不同的侧边栏内容。就像:

<?php 

$page_title = "Home";
$page_id = "home";
$sidebar = true;

?>

CONTENT HERE FOR THE HOME

<div class="sidebar-container">
    <p>The sidebar content for the home page</p>
</div>

我怎么能取悦?

1 个答案:

答案 0 :(得分:1)

那么为什么不把html放在像sidebar.php这样的文件中,然后用include('sidebar.php');放在哪里?

的template.php

<div id="sidebar">
  <?php include('sidebar.php'); ?>
</div>

的sidebar.php

$sidebar_dir = 'sidebar_' . $_GET['p'] . '.php'; //e.g. sidebar_home.php
include($sidebar_dir);