在doctype之前放置PHP代码会导致浏览器进入怪异模式吗?

4

正如在这里的一篇帖子中所讨论的那样,有人动态地将JavaScript代码附加到doctype声明之上,然后使他的浏览器进入怪异模式。我目前处于相同的情况,只是在我的情况下,我正在处理以下必须插入到doctype之上的PHP代码片段,否则我会遇到PHP“空格”错误。

<?php session_start();
if(!session_is_registered("reg")){
    header("location:page1.php");
}?>
<!DOCTYPE html>

那么这会将我的浏览器带入怪异模式吗?如果是,有什么解决方法吗?感激任何帮助/建议。谢谢。
4个回答

4

不会。浏览器在使用之前会处理PHP代码。只需确保在您的PHP代码或echo任何内容后不发送任何尾随字符。


2

你可以在文档类型之前添加PHP代码,但是当真正需要时,PHP代码不会存在。如果出现一些空白问题,请将文档类型重新格式化为紧跟在闭合的?>标签之后。

<?php

  $var = 'foo';

?><!DOCTYPE html>

只要您没有输出任何内容,浏览器甚至不会知道在 DOCTYPE 之前有 PHP 存在,而浏览器不知道的事情是不会对它造成影响的 ;)

1
将doctype放在同一行可能会有所帮助:
<?php session_start();
if(!session_is_registered("reg")){
    header("location:page1.php");
    die(); // presumably you want this
}?><!DOCTYPE html>

1

不行,因为 PHP 代码从未被打印出来。要检查这一点,请右键单击页面并检查页面的实际生成 HTML 源代码。JavaScript 是不同的,因为它实际上会被打印出来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接