39

我有一个 php 文件,其中包含我的网站内容。该文件需要是 .php,因为我先获取一些变量,然后稍后在网站内容中使用它。像这个例子:

<?php
$user_name = $_REQUEST['username'];
?>

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Page Title</title>
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
Welcome <?php echo $username;?>
</body>
</html>

我需要<!DOCTYPE HTML>, 因为文件扩展名是 php 吗?此外,它是否正确放置?它应该出现在标签之前还是文件的第一行?

我还注意到,如果我删除<!DOCTYPE HTML>,我的一些 css 代码将停止工作......

非常感谢你。

4

10 回答 10

34

是的,您需要 DOCTYPE,因为您的浏览器只能看到上述代码的以下部分

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Page Title</title>
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
Welcome THE USER NAME
</body>
</html>

我通常像这样将关闭的 PHP 标记和 DOCTYPE 放在一起?><!DOCTYPE HTML>

于 2013-01-30T20:28:43.940 回答
11

很抱歉复活死者,但似乎没有人解释为什么您需要 HTML 中的文档类型(是的,输出 HTML 的 PHP 脚本最后是一个 HTML 文件)。

声明一个 doctype 会影​​响浏览器解释你的 HTML 的方式(这可能是你的 css 代码在没有 doctype 的情况下可能会停止工作的原因)。基本上有两种方式:怪癖模式和严格模式。后者坚持标准,因此您应该始终告诉浏览器您的代码遵循哪个 HTML 标准(现在您可能想要 HTML5 具有最简单的 doctype: <!DOCTYPE html>)。

有关更详细的说明,请参见此处。

于 2015-09-13T09:05:48.940 回答
9

正如其他人所说,!DOCTYPE在输出 HTML 的 php 脚本中是必需的。如果您正在创建图像或执行 bash 文件或其他内容,情况会有所不同。

至于它属于哪里,最好把它放在开头,这样您就不会意外地在它之前输出一些东西,但是如果您使用会话变量或发送标头,您将需要确保在做这些事情之前声明一个文档类型。请记住,在通过 php 发送标头或启动会话之前,不能有浏览器输出(甚至是空格)。

于 2013-01-30T20:32:08.173 回答
3

是的,您应该有DOCTYPE声明,因为您发送给浏览器的是 HTML,而不是 PHP。

该声明告诉浏览器您正在使用 HTML 5 并告诉它如何呈现它。

于 2013-01-30T20:27:43.603 回答
3

无论 html 是如何构建的,你都应该在你的 html 中放置一个 Doctype。

w3 文档类型列表

于 2013-01-30T20:28:27.613 回答
3

HTML 的相同规则同样适用,无论它们是纯 HTML 文件,还是嵌入 PHP 的 HTML 文件。在任何需要纯 HTML 格式的文档类型中,您都需要一个文档类型。

顺便说一句,在 PHP 代码的第一个块的末尾和 doctype 之间有空格。我似乎记得 doctype 之前的空格可能有问题(尽管这可能仅适用于 XHTML)

于 2013-01-30T20:28:52.263 回答
2

您的最终输出是使用 doctype 的 HTML。所以,是的,你需要一个。如果它破坏了你的 CSS,那么你的 HTML 和/或 CSS 是错误的,需要修复。

于 2013-01-30T20:27:39.580 回答
2

当它们包含嵌入式 HTML 时,最好将.php文件视为常规 HTML 文件,服务器已被指示扫描动态 (PHP) 代码。

!DOCTYPE要使文档具有语义,仍然需要有效的声明。

于 2013-01-30T20:27:55.083 回答
2

PHP 真的与 HTML 无关——它只是服务器端代码吐出一堆浏览器解释的文本。

文档类型是浏览器如何解释随后的 HTML 的关键部分。

于 2013-01-30T20:29:15.940 回答
1
<!DOCTYPE HTML>
<table  style="position:absolute; bottom:20%; right:40%;" width="150">

如果你放入<!DOCTYPE HTML>php 文件,一些样式将无法正常工作,一些对齐问题。

于 2017-12-16T12:15:05.740 回答