我正在创建我的第二个网站,并希望使用PHP,因此我可以轻松地更改每个页面的页眉和页脚,而无需更改40多页。
我知道你制作了一个header.php页面和一个footer.php页面然后使用include将它放入你正在创建的任何页面中,但是我不希望标题包含doctype或title标签或者其他什么,我只是想要'身体'如果你愿意的话,标题的一部分。每个页面上的实际标签需要分开,因为这似乎是将页面标题保持为每个页面的最简单方法,这可能吗?我浏览了网页,大多数人建议使用一些PHP代码来更改每个页面上的标题,这似乎是一种解决方法,而不是首先实际防止问题,任何想法?
由于
答案 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.php
或container.php
中包含了我需要的所有内容,即使其中包含更深层次的内容。一些关键变量在全局范围内,但container.php
具有驱动逻辑的状态机。它基本上是&#34;页面&#34;即使我已经将CSS打印介质格式化为两行两行。
jQuery / Ajax可以通过每个容器内的控件动态添加和删除更多容器,这样有点漂亮。这样可以很容易地比较相似的时间段或跨月,季等报告。这样做的诀窍是增加一个全局javascript变量,以便jQuery知道要添加或杀死哪个div ID。