SMARTY:在Smarty模板中删除字符串开头或结尾的空格?

时间:2016-04-14 12:05:56

标签: php smarty whitespace trim

这是我用逗号分隔的字符串(,) $myStr = "One, Two,Three, Four , Five ,Six "

我能够成功地将其展开{assign var="options" value=","|explode:$myStr}

但是我也希望在输出时从每个字符串的开头或结尾删除空格。换句话说:我正在寻找与PHP的内置trim($mystr)函数等效的 SMARTY 函数。如果存在,PHP trim将删除开始和结束空格,否则返回实际字符​​串。

{section name=myname loop=$options}
   {$options[myname]}
{/section}

上面的代码会输出:

One
Two
Three
[whitespace]Four[whitespace]
[whitespace]Five[whitespace]
Six[whitespace]

如何修剪空格?

2 个答案:

答案 0 :(得分:5)

聪明的{strip}{/strip}。 将在theese标签之间删除空格。

{$var|substr:0:-1}会删除你的情况下的最后一个字符。 {$var|substr:1}将从字符串中删除第一个字符。

  

所有php函数都可以隐式地用作修饰符(更多内容)和   修饰语可以组合使用

智商中来自docs {$var|trim}

等于php中的trim($var)

还有另一种方式。在smarty中使用{php}{/php}标签可以使用php内置trim()函数,但这对我没有意义。为什么你甚至想把smarty变量放回php如果它被php包含?无义。

答案 1 :(得分:0)

如果空格只是空格字符中的空格,则可以使用函数trim()Docs)去除它。将$options[myname]替换为trim($options[myname])

如果是字符串“[whitespace]”,您可以使用preg_replace()Docs),例如:preg_replace("/[whitespace]/","",$options[myname])