我正在阅读<<实用的php和mysql构建八个动态Web应用程序>>。在附录A - 网站设计中,有两个文件 - header.php和footer.php。
它是header.php文件。
<?php
require("config.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title><?php echo $config_sitename; ?></title>
<link href="stylesheet.css" rel="stylesheet">
</head>
<body>
<div id="header">
<h1><?php echo $config_sitename; ?></h1>
</div>
<div id="menu">
<a href="<?php echo $config_basedir; ?>">Home</a>
•
<a href="<?php echo $config_basedir; ?>about.php">About</a>
•
<a href="<?php echo $config_basedir; ?>faq.php">FAQ</a>
•
<a href="<?php echo $config_basedir; ?>tech.php">Technical Details</a>
</div>
<div id="container">
<div id="bar">
<?php
require("bar.php");
?>
</div>
<div id="main">
这是footer.php文件。
</div>
</div>
</body>
</html>
我有两个问题 1.为什么header.php中的标记不会自行关闭,例如
<div id="main"> don't close
<div id="container"> don't close
<body> tag don't close
所有这些都在footer.php中关闭,如果header.php冗长而复杂,则很难编写footer.php文件来关闭header.php中的所有标记。
2. footer.php中有一个标记</html>
,但是header.php中没有<html>
标记,这是什么问题?
答案 0 :(得分:2)
我没有看过那本书,但通常是将一页分成三部分:
的header.php
content.php
footer.php
然后你可以想象下面的HTML代码块:
<!DOCTYPE html>
<html>
<body>
<div class="main">
<!--other content-->
</div>
</body>
</html>
与此相同:
<!--header.php-->
<!DOCTYPE html>
<html>
<body>
<div class="main">
<!--header.php end-->
<!--content.php-->
<!--other content-->
<!--content.php end-->
<!--footer.php-->
</div>
</body>
</html>
<!--footer.php end-->
因此,对于您的第一个问题,这些标记无法在header.php本身内关闭,因为这不允许content.php
中的内容插入 .main
容器
对于您的第二个问题,<html>
标记可能会被意外遗漏。
一个好的做法是在结束标记旁边添加注释以使事情更清晰。例如,您的footer.php
可能如下所示:
</div><!--#main-->
</div><!--#container-->
</body>
</html>
如果标签早于预期关闭,这样做可以防止大量粗心错误;或者如果结束标签被遗漏,你可以轻松发现它。