2014-07-15 13 views
5

ich PHP Smarty bin mit einem Link zu erklären:So verwenden str_replace in Smarty

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

und die resultierende Verbindung, wenn Mouseover ist:

"http:/domain/some name" 

ich den Raum char str_replace müssen (irgendeinen Namen) mit einem Unterstrich (some_name), wie geht das? wie Ergebnis unten:

"http:/domain/some_name" 

Ich benutze den folgenden Code, aber es funktioniert nicht. Wie benutze ich str_replace mit einem Array in html?

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

Verwenden Sie wirklich '' als Ihre Smarty-Begrenzer? – Synchro

Antwort

10

Sie PHP-Funktionen wie Smarty Modifikatoren verwenden können, aber Smarty hat a built-in replace modifier. Verwenden Sie es so:

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

fertig, danke! – prieku

0

Versuchen:

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

Das bedeutet: ersetzen Sie das Zeichen "" (Leerzeichen) durch "_" in $ config.weburl.

Dies würde alle Leerzeichen durch Unterstriche in PHP ersetzen. Versuchen Sie { str_replace(" ", "_", $config.weburl) }, um es mit Smarty PHP zu echo, aber da ich es nicht verwende, bin ich mir nicht sicher, dass das funktioniert.

Hier einige docs: http://php.net//manual/fr/function.str-replace.php