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

adi*_*ian 5 php templates smarty

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

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

    {php}
    }
    else
    {
    {/php}
        section 2   
    {php}
    }
    {/php}
Run Code Online (Sandbox Code Playgroud)

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

pws*_*068 5

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

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

     section 1

 {else}
        section 2   
 {/if}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

     section 1

 {else}
        section 2   
 {/if}
Run Code Online (Sandbox Code Playgroud)