PHP页眉和页脚混淆

时间:2014-09-11 08:55:39

标签: php

我正在创建我的第二个网站,并希望使用PHP,因此我可以轻松地更改每个页面的页眉和页脚,而无需更改40多页。

我知道你制作了一个header.php页面和一个footer.php页面然后使用include将它放入你正在创建的任何页面中,但是我不希望标题包含doctype或title标签或者其他什么,我只是想要'身体'如果你愿意的话,标题的一部分。每个页面上的实际标签需要分开,因为这似乎是将页面标题保持为每个页面的最简单方法,这可能吗?我浏览了网页,大多数人建议使用一些PHP代码来更改每个页面上的标题,这似乎是一种解决方法,而不是首先实际防止问题,任何想法?

由于

3 个答案:

答案 0 :(得分:2)

这不是一种解决方法,它只是实现它的最简单方法。当然,您可以在header.php中添加一些逻辑,以包含该特定页面的标题和内容的附加文件,但为什么会让您的生活变得更加困难?

<?php

$title = 'My Title';
$stuff = 'Some random stuff';

include('header.php');

然后在header.php中你有

<?php

...

<title>
  <?php if(isset($title)) echo $title; else echo 'Generic Title'; ?>
</title>

答案 1 :(得分:1)

非常简单的Daniel,您可以将随附的文件放在任何地方。

例如:

<html>
<head>
    <title>This is your title pages</title>
    <meta>This is your individual page meta data</meta>
</head>
<body>
    <?php include 'header.php' ?>
    <h2>This is your page title</h2>
    <p>This is your page content</p>
    <?php include 'footer.php' ?>
</body>
</html>

您的头文件可能如下所示:

<header>
    <h1>This is your Site Title</h1>
</header>

同样是你的页脚:

<footer>
    <p>Your copyright info</p>
</footer>

这使得标题包含文件实际上不是head标记,这是我认为你感到困惑的地方。

希望这是有道理的。

更新:所以在我的例子中,实际编译的输出会像这样呈现:

<html>
<head>
    <title>This is your title pages</title>
    <meta>This is your individual page meta data</meta>
</head>
<body>
    <header>
        <h1>This is your Site Title</h1>
    </header>
    <h2>This is your page title</h2>
    <p>This is your page content</p>
    <footer>
        <p>Your copyright info</p>
    </footer>
</body>
</html>

答案 2 :(得分:-1)

我已经完成了整个&#34;制作网站&#34;在我开始使用WordPress框架之前,我没有认真对待页眉/页脚。这是我自己编写的两个CMS和一个电子商务套件。 :\我喜欢@ mariobgr的回答,这是迈向网站模块化构建的第一步。

我认为您正在寻找的更多是页面/容器/内容的答案。 header.php经典地讲述了HTML标头,URL / POST / GET验证和安全性。有时javascript也在那里。通常情况下,header.php不会拥有<body><HTML>个标签,而这些标签会更多。既然您已经开启了这个概念,我建议您为CMS做好准备;像wordpress:个人内容在MySql数据库中,然后你有一些文件来处理你网站各个页面的各种功能角色。

有点无关但另一个例子包括:我最新的非正式&#34;框架&#34;是一个非常重要的销售报告生成工具。这是一个示例层次结构;缩进与每个include

有关
index.php
    db.php          //  connects to database
    inc.js.php      //  everything that's in <script> tags
    inc.container.php       //  isn't actually a page, is 1/3 page wide
        class.dates.php     //  meh, should be miraculously built in
        inc.post.php        //  POST processing to prefill form variables
        inc.controls.php    //  Form w/buttons to change report info
        inc.query.php       //  epic MySql query
        inc.report.php      //  Churns the query data and spits out tables
        inc.graph.php       //  graphs data from above via CSS backround
css/            // this is for jQuery
js/             // this is for jQuery
reports.css     //  this is for me

实际上,以一页/ index.php开始的内容变为inc.container.php,然后我更改了index.php,以便它可以有多个报告&#34;页面&#34;在同一个网页上。

我不是非常OOP,所以我在index.phpcontainer.php中包含了我需要的所有内容,即使其中包含更深层次的内容。一些关键变量在全局范围内,但container.php具有驱动逻辑的状态机。它基本上是&#34;页面&#34;即使我已经将CSS打印介质格式化为两行两行。

jQuery / Ajax可以通过每个容器内的控件动态添加和删除更多容器,这样有点漂亮。这样可以很容易地比较相似的时间段或跨月,季等报告。这样做的诀窍是增加一个全局javascript变量,以便jQuery知道要添加或杀死哪个div ID。