如何在Smarty中使用str_replace

时间:2014-07-15 08:56:58

标签: php html smarty

我正在使用PHP smarty来声明一个链接:

<{foreach item=list key=num from=$product}> 
    <li><a href="<{$config.weburl}>/<{$list.somename}>"><{$list.somename}></a></li>
<{/foreach}>`

以及鼠标悬停时生成的链接:

"http:/domain/some name"

我需要使用下划线(some_name)str_replace空格char(某个名称),该怎么做?比如下面的结果:

"http:/domain/some_name"

我正在使用以下代码,但它不起作用。如何在html中使用带有数组的str_replace?

<a href="<{$config.weburl}>/'.str_replace(array(' ','%'),array('_','-'),<{$list.somename}>).'">

2 个答案:

答案 0 :(得分:10)

您可以将PHP函数用作Smarty修饰符,但Smarty具有a built-in replace modifier。像这样使用它:

<{foreach item=list key=num from=$product}> 
    <li><a href="<{$config.weburl}>/<{$list.somename|replace:' ':'_'}>"><{$list.somename}></a></li>
<{/foreach}>

答案 1 :(得分:0)

尝试:

str_replace(" ", "_", $config.weburl)

这意味着:在$ config.weburl中用“_”替换字符“”(空格)。

这将在PHP中用下划线替换所有空格。尝试{ str_replace(" ", "_", $config.weburl) }用Smarty PHP回应它,但由于我不使用它,我不确定这是否会起作用。

以下是一些文档:http://php.net//manual/fr/function.str-replace.php