我有两个PHP文件,它们在基于mvc的应用程序中用作视图。它们都主要包含HTML,但也包含控制器发送给它们的一些变量。
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上搜索坏嵌套视图源的各种变体,但结果似乎都没有回答我的问题。
我怎么解决这个问题呢?谢谢你。
正如Mario在评论中解释的那样…
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>
然后你的视图源将显示为你想要的。
查看您的index.php版本,第2行缩进了4个空格,这就是视图源中出现的内容。查看第3行,缩进0个空格,如视图源中所示。这在新版本中通过缩进它们所需的空格量来纠正。
对于第1行,在您的index.php中,它没有缩进任何空格,因此它恰好出现在maintemplate.php中require部分开始的地方(已经缩进了8个空格)
要求一个文件不会以任何方式改变缩进,它只是将你在文件中指定的内容组合在一起。
在上面的版本中,index.php中的所有行都是手动缩进的,以匹配它们在源视图中的位置,您只需要记住不要缩进所需行的行,因为任何缩进都会添加到index.php