代码之家  ›  专栏  ›  技术社区  ›  adiian

如何在smarty(php)中检查复杂条件

  •  5
  • adiian  · 技术社区  · 16 年前

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

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

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

    1 回复  |  直到 16 年前
        1
  •  5
  •   pws5068    16 年前

    首先,我会清理你的代码。你不需要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}