如何检查Smarty中的复杂条件(PHP)

时间:2010-06-03 19:44:38

标签: php templates smarty

我需要在智能模板中显示一个或另一个部分。我的条件很简单:如果一个聪明的值以字符串开头,我应该显示一个部分,否则应该显示另一个聪明的部分。我只能更改tpl文件。

    {php}
    if (substr($url,0,4) != 'http')
    {
    {/php}
                  section 1

    {php}
    }
    else
    {
    {/php}
        section 2   
    {php}
    }
    {/php}

问题是我无法读取先前使用$ smarty-> assign分配的url变量。基本上,我正在寻找可用于检索值的智能函数,或者是否有更好的解决方案。

1 个答案:

答案 0 :(得分:5)

首先,我会清理你的代码。你不需要php标签,你使用的是smarty:

 {if substr($url,0,4) neq 'http'}

     section 1

 {else}
        section 2   
 {/if}

这是未经测试的,但它应该非常接近......

现在,如果您尝试读取类似常量的内容,例如像HTTP_HOST这样的服务器变量,则可以执行以下操作:

 {assign var='url' value=$smarty.server.HTTP_HOST}

 {if substr($url,0,4) neq 'http'}

     section 1

 {else}
        section 2   
 {/if}