2012-01-17 70 views
3

只是想知道什麼是模板字符串替換的最佳方法。PHP模板字符串替換

preg_replace('/{%(\S+)%}/', 'bill', $tableOutput); 

通過了preg_replace,如果有大量的字符串需要被替換,該函數將被調用多次依賴於字符串必須更換號碼。只是想知道如果有一種方法可以查看一次字符串並相應地替換?

感謝

+1

是[這](http://stackoverflow.com/questions/8846225/php-function-that-replaces-texts-with-variables/8846257#8846257)你想做什麼? – Jon

+1

根據[精美的PHP手冊](http://php.net/manual/en/function.preg-replace.php),您可以提供帶數組參數的'preg_replace'。所以不行。它不會被多次調用。 – rdlowrey

+0

Jon你是我正在尋找的答案。非常感謝 – Bruce

回答

4

使用的preg_replace數組語法...?

preg_replace(array('/pattern1/', '/pattern2/'), array('replacement1', ...), ...) 
+0

但是你能找到替換字符串嗎?例如​​{%itemname%},找到{%itemname%}並在數組[[itemname]中進行匹配,並用值? – Bruce

+1

是的,你可以使用前視和後視,然後替換比賽。 '(?<=\){%item%}(?= \ <\/td\>)'。如果您需要使用捕獲組進行更精細的控制,則可以捕獲標籤內容並使用'preg_replace_callback'替換該內容。 –

+1

然而,更簡單的方法是隻使用'preg_replace'替換字符串中的反向引用$ 1。 –