我总是在我的网页上包含以下 DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
我想在我的一个网站上开始使用 PHP。我应该以任何方式修改此 DTD 以使其保持有效吗?
有什么理由不应该在 DTD 之前使用 PHP 块,或者 DTD 应该始终是每个文件的开头吗?
是的,您应该这样做,不是因为您使用的是 PHP,而是因为您现在应该使用 HTML5。
<!DOCTYPE html>
doctype 与 PHP 根本没有任何关系,因为它是一种服务器端语言。但是,文档类型会影响您输出的 HTML。
如果在 doctype 之前输出任何字符,某些浏览器(阅读:IE)可能会出现问题,并且在 doctype 之前使用 PHP 通常不是问题,只需确保在 doctype 之前的 HTML 中没有空格或换行符输出。
Php 是一种为浏览器生成文本的服务器端语言。无论 HTML 是如何生成的,浏览器都以完全相同的方式解释 HTML 文本。硬编码的 html 在浏览器中的解释方式与 ASP 生成的 HTML 相同,后者的解释方式与 PHP 生成的 HTML 相同。
因此,您Doctype
不需要根据任何选择的服务器端脚本语言进行定制。
与DOCTYPE
PHP 无关,它是您需要注意的返回给浏览器的内容。
它DOCTYPE
只是告诉浏览器如何解释页面和组成页面的代码。作为PHP
一种服务器端语言,它与此无关,除非您输出的特定 HTML 需要与DOCTYPE
您定义的不同。
@adeneo 正确地补充说你应该改变它,但不是因为它与 PHP 有任何关系。对于 HTML 5,您必须使用以下方式声明文档类型:
<!DOCTYPE html>
PHP 输出 HTML(或其他浏览器可显示的内容)。只要输出的 HTML 符合您的 doctype,您就可以继续使用您选择的 doctype。如果您不知道 doctype 是什么以及做什么,这里有一个古老但很好的参考:http ://www.alistapart.com/articles/doctype/
用于生成页面的服务器端技术的选择并不影响文档类型的选择。重要的是发送到浏览器的标记。
doctype 语句(不是 DTD——它原则上是对 DTD 的引用,尽管浏览器不会这样对待它)应该位于 HTML 文档的开头,但这适用于发送给浏览器的 HTML 文档。.php 文件并不是真正的 HTML 文档(或者不一定是),并且任何 PHP 指令在开始时都将由服务器端代码处理,并且永远不会到达浏览器。