我需要在 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 函数,或者是否有更好的解决方案。
最佳答案
首先,我会清理您的代码。你不需要 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}
关于php - 如何在 Smarty(PHP) 中检查复杂条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969221/