php - 如何在 Smarty(PHP) 中检查复杂条件

标签 php templates smarty

我需要在 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/

相关文章:

php - 生成所有可能的单词组合

php - 如何删除来自没有出现在文本编辑器 (Wordpress) 中的 dom

php - 类 CURLFile 的对象无法转换为字符串

php - 无论窗口大小如何,我都需要将背景颜色灰色向下移动以覆盖页面的长度

c++ - 使用 hash_map<vector<int>,string> 失败,为什么?

c++ - 为什么 std::async 不能与接收抽象类引用作为参数的函数一起使用?

C++使用模板时算术运算符重载--自动转换

javascript - Javascript 重定向在 smarty .tpl 文件中不起作用

javascript - 如何解决 Smarty 中的 jQuery 加载错误

javascript - 将多维智能数组转换为 Javascript 多维数组