【发布时间】:2023-03-26 19:45:01
【问题描述】:
我想把我的 html 导航放在一个单独的 php 文件中,所以当我需要编辑它时,我只需要编辑一次。当我想将活动类添加到活动页面时,问题就开始了。
我有三页和一个公用文件。
common.php:
<?php
$nav = <<<EOD
<div id="nav">
<ul>
<li><a <? if($page == 'one'): ?> class="active"<? endif ?> href="index.php">Tab1</a>/</li>
<li><a href="two.php">Tab2</a></li>
<li><a href="three.php">Tab3</a></li>
</ul>
</div>
EOD;
?>
index.php: 所有三个页面都是相同的,只是每个页面上的 $page 不同。
<?php
$page = 'one';
require_once('common.php');
?>
<html>
<head></head>
<body>
<?php echo $nav; ?>
</body>
</html>
除非我将导航放在每个页面上,否则这根本行不通,但是将导航与所有页面分开的整个目的都被破坏了。
我想要完成的事情是否可能?我做错了什么?
谢谢
编辑:执行此操作时,li 中的 php 代码似乎没有运行,它只是像 html 一样被打印
【问题讨论】:
-
首先,PHP 不会在 heredoc 字符串中解析(仅变量),其次,结束标识符(即 EOD)必须位于行首。
-
是的,对不起,我知道,认为这样阅读会更容易。 EOD 在我的代码行的开头,这不是问题。我的问题是它准确地打印了 EOD 中的内容,还有 php。
-
打印php的原因是语法错误: if($page == 'one'): ?> 应该是
标签: php