这是我用逗号分隔的字符串(,)
$myStr ="One, Two,Three, Four , Five ,Six"
我能成功爆炸{assign var="options" value=","|explode:$myStr}
但是我也希望在输出时从每个字符串的开头或结尾删除空格。 换句话说:我正在寻找一个等同于PHP的内置trim($mystr)功能的SMARTY功能。 PHP修剪将删除开始和结束白色空格(如果存在),否则返回实际字符串。
{section name=myname loop=$options}
{$options[myname]}
{/section}
上面的代码将输出:
One
Two
Three
[whitespace]Four[whitespace]
[whitespace]Five[whitespace]
Six[whitespace]
我怎样才能修剪空白?
使用trim($ varName)。
重复请检查:stackoverflow.com/questions/1279774/
不,它不重复。 两者都是不同的问题。 我担心的是只删除开始和结束位置的空白区域。 您提到的问题是从字符串中删除所有空格。
我正在寻找一个SMARTY equilent of PHP trim($ mystr)函数。 PHP修剪将删除开始和结束白色空格(如果存在),否则返回实际字符串。
smarty中有{strip} {/ strip}。
将在theese标签之间删除空格。
{$var|substr:0:-1}会删除你的情况下的最后一个字符空格。 {$var|substr:1}将从字符串中删除第一个字符。
all php-functions can be used as modifiers implicitly (more below) and
modifiers can be combined
来自smarty中的docs {$var|trim}等于php中的trim($var)。
还有另一种方式。 在smarty中使用{php}{/php}标签可以使用php内置的trim()功能,但这对我没有意义。 为什么你甚至想把smarty变量放回php如果它被php包含? 废话。
谢谢你的回答。 但它会删除字符串中的所有空格。 我想从字符串的两端删除合成空格。
检查编辑的答案
再次感谢你,但如果没有在结尾显示空格,它将删除字符串中的第一个和最后一个字符。 我正在寻找一个PHP quilent of trim($ mystr)。 PHP trim将删除开头和结尾的空格(如果存在),否则返回实际的字符串。
检查编辑2,这一定是它。
适合我。 刚刚测试过 $smarty->assign('text', ' empty ');然后在smarty {$text|trim}中删除了空格。
让我们在聊天中继续讨论。
雅啊..它的工作。 谢谢 :)
如果空格只是空格字符中的空格,则可以使用函数trim()(Docs)去除它。 将$options[myname]替换为trim($options[myname])。
如果是字符串"[whitespace]",您可以使用preg_replace()(Docs),如:preg_replace("/[whitespace]/","",$options[myname])
我知道在php中这样做。 但我的问题是关于SMARTY。