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

SMARTY : Remove whitespace at the beginning or end of my string in Smarty template?

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

我能成功爆掉它{assign var="options" value=","|explode:$myStr}

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

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

上面的代码会输出:

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

如何 trim 空格?

如果白色space只是白色space如space字符,可以使用函数trim()Docs)去除它.将 $options[myname] 替换为 trim($options[myname]).

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

smarty中有{strip}{/strip}。 这些标记之间的空格将被删除。

{$var|substr:0:-1} 会删除您案例中的最后一个字符空白。 {$var|substr:1} 将从字符串中删除第一个字符。

all php-functions can be used as modifiers implicitly (more below) and modifiers can be combined

来自 docs {$var|trim} 在 smarty 中等于 trim($var) 在 php.

还有一个办法。在 smarty 中使用 {php}{/php} 标签可以使用 php 内置的 trim() 函数,但这对我来说毫无意义。如果 php 包含了 smarty 变量,为什么还要将它放回 php?废话。