我正在尝试创建一个非常简单的web应用程序,基本上是为了了解HTML5、CSS和JavaScript编码的最佳实践。
我的应用程序有3-4页,每一页都使用相同的菜单标题。因此,我想通过将它写在一个单独的文件(PHP或HTML)中来使其可重用。
head.php(可重复使用):
<!DOCTYPE html>
<html>
<head>
<link href="../../css/headermenu.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<ul id="menu">
<li><a href="#" class="home">Home<span></span></a></li>
</ul>
<p>
</p>
</body>
</html>
front.php:
<?php
include ("$_SERVER[DOCUMENT_ROOT]/page/common/head.php");
?>
HTML标记(脏代码):
<!DOCTYPE html>
<html>
<head>
<!DOCTYPE html>
<html>
<head>
<link href="../../css/headermenu.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<ul id="menu">
<li><a href="#" class="home">Home<span></span></a></li>
</ul>
<p>
</p>
</body>
</html></head>
<body>
<div>
</div>
<p>
</p>
</body>
</html>
我有以下问题:
CCD_ 1同时具有CCD_ 2和CCD_。那么,我应该在哪里编写这些PHP行来包含它呢?(在
<head>
或<body>
中)(我不想在最后一页中有多个<head>
和<body>
)我应该遵循的其他最佳实践是什么?(欢迎任何参考链接)
我已经读过w3schools了。
在我看来,阅读有关模板系统的内容或了解框架/CMS如何处理这一问题是个好主意。
按照你的方式做,你无法完全避免重复,例如,在每个content.php.中都会重复关闭head标签</head>
所以这只是一个想法:
head.php
<?php
// Some other includes / requires,
// code snippets...
?>
<!DOCTYPE html>
<html>
<head>
<!-- site-wide stylesheets -->
<!-- & js-files -->
<link href="css/main.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="my/global/scripts.js"></script>
content.php
<?php
include ($_SERVER['DOCUMENT_ROOT'] . '/page/common/head.php');
?>
<!-- put page specific scripts &
<!-- styles here -->
<link href="my/pages/css/style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="my/pages/js/scripts.js"></script>
</head>
<body>
<div id="container">
<!-- content start -->
<div id="content">
<h1>title</h1>
<p>Your content</p>
</div>
<!-- end of content div -->
<?php
include ($_SERVER['DOCUMENT_ROOT'] . '/page/common/foot.php');
foot.php
<div id="foot">
copyright etc
</div>
</div> <!-- end of container div -->
</body>
</html>
php正在渲染html,如果你在两个文件中都有头,它当然会被打印两次
你应该在includes中分开,但不要在两个文件中都写标签
示例
<header>
<?php
// this file should not include <head> taf
include ($_SERVER[DOCUMENT_ROOT] . '/page/common/header.php);
?>
</header>
BODY
<header>
<?php
include ($_SERVER[DOCUMENT_ROOT] . '/page/common/foot.php);
?>
</header>
include将带来来自head.php
和head.php
0的内容,并将其放入index.php
文件
避免多个头标记的另一种可能的解决方案,也可以添加额外的css文件:
<?php
// head.php
$html = <<< EOF
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head>
<title>{$title}</title>
{$meta}
<link href="../../css/headermenu.css" rel="stylesheet" type="text/css"/>
{$additional_style}
</head>
<body>
<ul id="menu">
<li><a href="#" class="home">Home<span></span></a></li>
</ul>
{$mainbody}
{$footer}
{$javascript}
</body>
</html>
EOF;
?>
<?php
// page1.php
$title = 'some title';
$meta = '';
$additional_style = '';
$mainbody = 'your body';
$footer = '';
$javascript = '';
include_once("head.php");
echo $html;
?>
<?php
// page2.php
$title = 'some other title';
$meta = '';
$additional_style = '<link href="../../css/page2.css" rel="stylesheet" type="text/css"/>';
$mainbody = 'your body';
$footer = '';
$javascript = '';
include_once("head.php");
echo $html;
?>
它还允许多级继承(例如,您可以为几个页面定义相同的页脚)。这个原理也可以在没有EOF的情况下使用,但我认为这样看起来更好。
主要的缺点是,如果你没有在包括head.php的页面中设置它的所有变量,你会收到警告。