php - Smarty 缩进和代码格式

标签 php html format smarty

我可以用 Smarty 制作好看的 HTML 吗?

我的意思是如果我采用这种模式(它不是一个工作代码,只是一个例子):

<div class="comments-div">
    {{assign var="i" value="0"}}
    {{assign var="tab" value="0"}}
    {{foreach from=$contact.comments item=comment}}
    <div class="comment-text"><p>{{$comment.text}}</p></div>
        {{if $i == 3}}
            {{assign var="i" value="0"}}
        {{else}}
            {{assign var="i" value=`$i+1`}}
        {{/if}}
    {{/foreach}}
</div>

它可能会产生这样的东西

                                  <div class="tab" id="tab0" style="display: block;">
            <div id="container73">
                <div class="comment-text"><p>c1</p></div>
                <div class="addby">
                    <p>
                    Added by: ASDF at 2011-04-22 15:58:41
                                            &nbsp;<span> | </span>&nbsp;<a class="delete" _id="73">Delete comment</a>

                                            </p>
                </div>
            </div>
                                                                        <div id="container74">
                <div class="comment-text"><p>c2</p></div>
                <div class="addby">
                    <p>
                    Added by: DFGS at 2011-04-22 15:58:44
                                            &nbsp;<span> | </span>&nbsp;<a class="delete" _id="74">Delete comment</a>

                                            </p>
                </div>
            </div>

看看这些丑陋的空格和换行符

所以问题是:是否有任何做法可以避免使用 Smarty 编写难看的代码?

也许我需要使用这样的东西?

<div class="comments-div">
{{    assign var="i" value="0"}}
{{    assign var="tab" value="0"}}
{{    foreach from=$contact.comments item=comment}}
    <div class="comment-text"><p>{{$comment.text}}</p></div>
{{        if $i == 3}}
{{            assign var="i" value="0"}}
{{        else}}
{{            assign var="i" value=`$i+1`}}
{{        /if}}
{{    /foreach}}
</div>

最佳答案

根据您想要格式化的方式,您可以使用 {strip} 函数:http://www.smarty.net/docs/en/language.function.strip.tpl {strip} 从输出中删除空格。

如果你想在一行中输出,你可以这样做:

{{strip}}<div class="comments-div">
    {{assign var="i" value="0"}}
    {{assign var="tab" value="0"}}
    {{foreach from=$contact.comments item=comment}}
    <div class="comment-text"><p>{{$comment.text}}</p></div>
        {{if $i == 3}}
            {{assign var="i" value="0"}}
        {{else}}
        {{assign var="i" value=`$i+1`}}
        {{/if}}
    {{/foreach}}
</div>{{/strip}}

您还可以使用 {strip} 删除部分输出中的空格:

<div class="comments-div">{{strip}}
    {{assign var="i" value="0"}}
    {{assign var="tab" value="0"}}
    {{/strip}}{{foreach from=$contact.comments item=comment}}
    <div class="comment-text"><p>{{$comment.text}}</p></div>{{strip}}
        {{if $i == 3}}
            {{assign var="i" value="0"}}
        {{else}}
        {{assign var="i" value=`$i+1`}}
        {{/if}}
    {{/strip}}{{/foreach}}
</div>

关于php - Smarty 缩进和代码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756963/

相关文章:

php - 无法连接到 MySQL - 断电后丢失东西?

php - $_GET 无需使用 javascript 更新站点

html - utf-8是字符集还是编码?

php - 在 echo 中格式化日期

c++ - 验证 _snprintf 中的格式说明符 - C++

php - 在 webroot 之外下载文件

javascript - php代码加载http URL的页面源

php - 更新列以使其包含行位置

jquery - 使用MVC3的HTML编码和解码

parsing - 根据初始字符串变量,每隔第三行或第二行组织多行文本