4

正如在这里的一篇文章中所讨论的那样;有人在 doctype 声明上方动态附加 javacript 代码,然后使他的浏览器进入怪癖模式..我目前处于相同状态,仅在我的情况下,我正在处理下面必须插入的 PHP代码片段在 doctype 之上,否则我会得到 PHP“空白”错误。

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

那么这会让我的浏览器进入怪癖模式吗?如果可以,有什么解决方法吗?感谢任何帮助/建议。谢谢。

4

4 回答 4

4

不,PHP 代码在浏览器使用它之前被处理。只需确保在 PHP 之后不发送任何尾随字符或回显任何内容。

于 2011-06-23T05:04:13.060 回答
2

您可以在 doctype 之前使用 PHP,真正重要的时候 PHP 将不存在。如果你有一些空白出现,只需将 doctype 重新格式化为就在 close 之后?>

<?php

  $var = 'foo';

?><!DOCTYPE html>

只要你不输出任何东西,浏览器就永远不会知道在 DOCTYPE 之前有 PHP,浏览器不知道的东西不会伤害它;)

于 2011-06-23T05:03:52.437 回答
1

将 doctype 放在同一行可能会有所帮助:

<?php session_start();
if(!session_is_registered("reg")){
    header("location:page1.php");
    die(); // presumably you want this
}?><!DOCTYPE html>
于 2011-06-23T05:04:26.767 回答
1

不,因为 php 代码永远不会被打印出来。要检查此页面,请右键单击该页面并检查该页面实际生成的 html 源代码。Javascript 是不同的,因为它实际上是被打印出来的。

于 2011-06-23T05:04:29.213 回答