【发布时间】:2015-10-11 17:11:56
【问题描述】:
我有两个 PHP 文件,它们在基于 MVC 的应用程序中用作视图。它们都包含大部分 HTML,但也包含一些由 Controller 发送给它们的变量。
maintemplate.php:
<!DOCTYPE html>
<html>
<head>
<title><?php echo $viewModel->get('pageTitle'); ?></title>
</head>
<body>
<?php require($this->viewFile); //index.php ?>
</body>
</html>
index.php:
<ul>
<li><a href="fanfics/list">fanfics list</a></li>
</ul>
问题是“查看源代码”中显示的代码(我检查了 Chrome、IE 和 FF)没有像我预期的那样嵌套。第一行嵌套正确 - 包含标签后四个空格,但其他行嵌套,就好像第一行之前根本没有空格一样。
查看源代码:
<!DOCTYPE html>
<html>
<head>
<title>Fanfiction application</title>
</head>
<body>
<ul> <!-- 4 spaces after the body -->
<li><a href="fanfic/list">fanfics list</a></li> <!-- No spaces after the body -->
</ul>
</body>
</html>
我尝试在 Google 和 StackOverflow 上搜索 bad nesting view source 的各种变体,但似乎没有一个结果能回答我的问题。
那我该如何解决呢?谢谢。
【问题讨论】:
-
include只是从字面上输出文件中的任何内容。它不添加任何空格。第一行的空格只是来自require()之前的缩进<?php。 -
为什么要“解决”这个问题?这根本不是问题。 HTML 标记会忽略除值属性内部之外的杂散空白。
-
mario - 我真的认为
require在这里更合适。该页面是必不可少的,如果未导入,我需要停止应用程序。 arkascha - 我相信每个人都应该能够使用您的 HTML。我相信这是现代发展的基础之一。我希望我的代码能够正确显示给那些想要使用它的人。 -
require & include 处理文件输出的包含相同,在布局,间距等方面,唯一的区别是文件是否必不可少(
require)或不是(include) -
通过输出处理器(如 tidy 或 htmlpurifier)运行生成的页面,如链接的欺骗中所建议的那样。
标签: php html view-source