我需要在带有html的php文件中使用!DOCTYPE声明吗?

Dan*_*Fox 29 html php doctype

我有一个包含我网站内容的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>
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢你.

Gra*_*ers 26

是的,您需要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>
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,关闭的php标签(```?````)与doctype(```<!DOCTYPE```)的停止开始之间缺少空白空间.否则事情可能[变得混乱](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) (4认同)

Der*_*ker 7

正如其他人所说,!DOCTYPE在输出HTML的PHP​​脚本中是必要的.如果您正在创建图像或执行bash文件或其他内容,则故事会有所不同.

至于它所属的位置,最好把它放在开头,这样你就不会在它之前意外输出一些东西,但是如果你使用的是会话变量或发送标题,你会想要确保在那之前完成这些事情.声明doctype.请记住,在通过php发送标头或启动会话之前,可能没有浏览器输出(甚至是空格).


mTo*_*res 7

很抱歉让死者复活,但似乎没有人解释为什么你需要HTML中的doctype(是的,输出HTML的PHP​​脚本最后是一个HTML文件).

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

请参阅此处以获取更详细的说明.