渲染模板中if语句的格式

时间:2012-12-07 20:37:10

标签: php if-statement

这是我的问题。我的代码如下所示:

<ul class="nav pull-right">
<?php if (!logged_in()) : ?>
    <li><a href="<?php echo base_url(); ?>login"><i class="icon-off"></i> Login</a></li>
    <li><a href="<?php echo base_url(); ?>register"><i class="icon-user"></i> Register</a></li>
<?php else : ?>
    <li><a href="<?php echo base_url(); ?>logout"><i class="icon-user"></i> Logout</a></li>
<?php endif; ?>
</ul>

但是,当我在Chrome中查看源代码时,代码就到处都是:

<ul class="nav pull-right">
                                                    <li><a href="http://localhost/logout"><i class="icon-user"></i> Logout</a></li>
                                            </ul>

如何重新组织我的语法,以便源代码如下所示?

<ul class="nav pull-right">
    <li><a href="http://localhost/logout"><i class="icon-user"></i> Logout</a></li>
</ul>

2 个答案:

答案 0 :(得分:1)

关闭PHP标记后的每个回车符都不会返回到输出缓冲区。您必须在代码中添加一些额外的行:

<ul class="nav pull-right">
<?php if (!logged_in()) : echo "\n";  ?>

    <li><a href="<?php echo base_url(); ?>login"><i class="icon-off"></i> Login</a></li>
    <li><a href="<?php echo base_url(); ?>register"><i class="icon-user"></i> Register</a>      
</li>
<?php else : ?>

    <li><a href="<?php echo base_url(); ?>logout"><i class="icon-user"></i> Logout</a></li>
<?php endif; ?>
</ul>

您可能需要查看Twig这是一个模板系统。它还具有删除所有空间的功能,这些空间有时非常方便。

答案 1 :(得分:1)

源代码格式化(除了少数例外)对浏览器,CSS,Javascript等无关紧要。这主要是虚荣,担心它会让你头疼。

我建议使用Tidy类。例如:

$output = "{YOUR FINAL OUTPUT STRING}";
$tidy = new Tidy;
$config = array(
    'indent'              => true,
    'literal-attributes'  => true,
    'wrap'                => 120
);
$tidy->parseString($output, $config, 'utf8');
$tidy->cleanRepair();
echo $tidy;