2014-07-15 15 views
5

Tôi đang sử dụng PHP smarty để tuyên bố một liên kết:Làm thế nào để sử dụng str_replace trong Smarty

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

và liên kết dẫn đến khi mouseover là:

"http:/domain/some name" 

tôi cần phải str_replace không gian char (một số tên) với dấu gạch dưới (some_name), làm thế nào để làm điều đó ?? như kết quả bên dưới:

"http:/domain/some_name" 

Tôi đang sử dụng mã sau nhưng mã không hoạt động. Làm thế nào để sử dụng str_replace với một mảng trong html?

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

Bạn có thực sự sử dụng '<{' and '}> 'làm dấu phân cách thông minh? – Synchro

Trả lời

10

Bạn có thể sử dụng chức năng PHP như bổ Smarty, nhưng Smarty có a built-in replace modifier. Sử dụng nó như thế này:

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

đã hoàn tất, cảm ơn bạn! – prieku

0

Hãy thử:

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

Điều này có nghĩa: thay thế các nhân vật "" (không gian) bằng "_" trong $ config.weburl.

Điều này sẽ thay thế tất cả các dấu cách bằng dấu gạch dưới trong PHP. Hãy thử { str_replace(" ", "_", $config.weburl) } để lặp lại nó với Smarty PHP, nhưng khi tôi không sử dụng nó, tôi không chắc chắn điều này sẽ làm việc.

Dưới đây là một số tài liệu: http://php.net//manual/fr/function.str-replace.php

Các vấn đề liên quan