我有一个包含我网站内容的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代码就会停止工作......
非常感谢。
答案 0 :(得分:24)
是的,您需要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>
答案 1 :(得分:7)
很抱歉让死者复活,但似乎没有人解释为什么你需要HTML格式的文档类型(是的,输出HTML的PHP脚本最后是HTML文件)。
声明doctype会影响浏览器解释HTML的方式(这可能是为什么您的css代码可能会在没有doctype的情况下停止工作)。基本上有两种方式:怪癖模式和严格模式。后者坚持标准,因此您应该始终告诉浏览器您的代码遵循哪种HTML标准(现在您可能希望HTML5具有最简单的doctype:<!DOCTYPE html>
)。
答案 2 :(得分:6)
正如其他人所说,!DOCTYPE
在输出HTML的php脚本中是必需的。如果您正在创建图像或执行bash文件或其他内容,则故事会有所不同。
至于它所属的位置,最好把它放在开头,这样你就不会在它之前意外输出一些东西,但如果你使用会话变量或发送标题,你会想确保做那些事情在宣布doctype之前。请记住,在通过php发送标头或启动会话之前,可能没有浏览器输出(甚至是空格)。
答案 3 :(得分:2)
无论html是如何构建的,你都应该在你的html中放置一个Doctype。
答案 4 :(得分:2)
HTML的相同规则同样适用,无论它们是纯HTML文件还是嵌入了PHP的HTML文件。你需要一个doctype,在任何情况下,你需要一个纯HTML格式。
顺便说一下,在PHP代码的第一个块的末尾和doctype之间有空格。我似乎记得doctype之前的空格可能有问题(虽然这可能只适用于XHTML)
答案 5 :(得分:1)
您的最终输出是HTML,它是使用doctype的内容。所以,是的,你需要一个。如果它破坏了你的CSS,那么你的HTML和/或CSS是错误的,需要修复。
答案 6 :(得分:1)
是的,您应该拥有DOCTYPE
声明,因为您发送的浏览器是HTML而不是PHP。
该声明告诉浏览器您正在使用HTML 5并告诉它如何呈现它。
答案 7 :(得分:1)
当它们包含嵌入式HTML时,最好将.php
文件视为常规HTML文件,服务器已被指示扫描动态(PHP)代码。
文档仍然需要有效的!DOCTYPE
声明才能生成语义。
答案 8 :(得分:1)
PHP实际上与HTML无关 - 它只是服务器端代码吐出一堆浏览器解释的文本。
doctype是浏览器如何解释随后的HTML的关键部分。
答案 9 :(得分:0)
<!DOCTYPE HTML>
<table style="position:absolute; bottom:20%; right:40%;" width="150">
如果你将<!DOCTYPE HTML>
放在php文件中,某些样式将无法正常工作,一些对齐问题。