2014-07-15 9 views
5

używam PHP Smarty zadeklarować link:Jak używać str_replace w Smarty

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

i otrzymany związek kiedy mouseover jest:

"http:/domain/some name" 

muszę str_replace char przestrzeni (jakieś imię) z podkreśleniem (some_name), jak to zrobić? podobny wynik poniżej:

"http:/domain/some_name" 

Korzystam z następującego kodu, ale nie działa. Jak używać str_replace z tablicą w html?

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

Czy naprawdę używasz '<{' and '}>' jako ograniczników Smarty? – Synchro

Odpowiedz

10

Można użyć funkcji PHP jako modyfikatorów Smarty, ale Smarty ma a built-in replace modifier. Użyj go tak:

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

zrobione, dziękuję! – prieku

0

Spróbuj:

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

Oznacza to zamienić znak "" (spacja) przez "_" w $ config.weburl.

To zastąpiłoby wszystkie spacje podkreśleniami w PHP. Wypróbuj { str_replace(" ", "_", $config.weburl) }, aby uzyskać echo z Smarty PHP, ale ponieważ go nie używam, nie jestem pewien, czy to zadziała.

Oto niektóre dokumenty: http://php.net//manual/fr/function.str-replace.php