我创建了一个简单的网页,其中包含页眉和页脚作为单独的php文件,如下所示
<?php
$PageName = "Home Page";
include $_SERVER['DOCUMENT_ROOT'] . "/MyPage/header.php";
include $_SERVER['DOCUMENT_ROOT'] . "/MyPage/footer.php";?>
这是标题
<?php
print("<!DOCTYPE html>");
print("<html lang='en-UK'>");
print("<head>");
print("<title>");
print($PageName);
print("");
print("</title>");
print("<meta http-equiv='content-type' content='text/html; charset=utf-8' >");
print("<meta name='viewport' content='width=device-width, initial-scale=1.0'>");
$CSSRoot = "/MyPage/StyleDefault.css";
print("<link rel='stylesheet' type='text/css' href=$CSSRoot>");
print("</head>");
print("<body>");
print("<h1>My Page</h1>");?>
和页脚
<?php print("</body></html>");?>
但是当我查看它时,标题元素出现在正文中,如下所示
header information appearing in the body
我想说清楚这不会导致任何问题,但我想知道原因是什么。
由于
修改
大脑放屁时刻将代码放在评论中,抱歉。
新索引
<?php
$PageName = "Home Page";
$CSSRoot = "/MyPage/StyleDefault.css";
include $_SERVER['DOCUMENT_ROOT'] . "/MyPage/header.php";
?>
<h1>My Page</h1>
<?php
include $_SERVER['DOCUMENT_ROOT'] . "/MyPage/footer.php";?>
新标题
<!DOCTYPE html>
<html lang="en-UK">
<head>
<title><?php echo $PageName;?></title>
<meta http-equiv='content-type' content='text/html; charset=utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<link rel='stylesheet' type='text/css' href="<?php echo $CSSRoot;?>">
</head>
<body>
新页脚
</body></html>
新输出
<html lang="en-UK"><head></head><body>
<title>Home Page</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="/MyPage/StyleDefault.css">
<h1>My Page</h1>
</body></html>
答案 0 :(得分:0)
这就是你应该怎么做的。
<强>的header.php 强>
<!DOCTYPE html>
<html lang="en-UK">
<head>
<title><?php echo $PageName;?></title>
<meta http-equiv='content-type' content='text/html; charset=utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<link rel='stylesheet' type='text/css' href="<?php echo $CSSRoot;?>">
</head>
<body>
<强>的index.php 强>
<?php
$PageName = "Home Page";
$CSSRoot = "/MyPage/StyleDefault.css";
include $_SERVER['DOCUMENT_ROOT'] . "/MyPage/header.php";
?>
<h1>My Page</h1>
<?php include $_SERVER['DOCUMENT_ROOT'] . "/MyPage/footer.php";?>
<强> footer.php 强>
</body>
</html>
这应该可行,我不知道你为什么要使用php打印所有的html标签,而你可以输出正常的。
答案 1 :(得分:0)
我相信我发现了问题,chrome中的sources面板显示,在doctype和end body标签之前是两个字符(即页眉和页脚文件的开头),由红点表示,根据{{3这是一个零宽度的无空间,我不知道它们是如何出现的,我似乎无法摆脱它们,但似乎它们可能是问题的原因。 / p>
更新
浏览了这个问题,使用UFT-8 BOM(字节顺序标记)插入违规字符,将其更改为UTF-8(在Notepadd ++中编码)的php文件解决了问题,谢谢所有的帮助