2017-06-21 68 views
-1

我創建一個PHP郵件列表系統。 我需要的是一些regexing字符的名稱,電子郵件等 對於實例PHP郵件列表正則表達式


嗨,[名字]]

blablabla

的問候,傑夫


而正則表達式應該檢測[[]],名字,並用DB中的一些字符串替換它。

我不是正則表達式的專家,我已經嘗試了一些正則表達式,但不能做出完美的解決方案..

謝謝..

+1

你爲什麼不使用'str_replace'? – modsfabio

+0

'\ [\ [([^ \]] *)\] \]'? –

+0

https://regex101.com/r/5lB89Y/1 – Andreas

回答

1

您可以輕鬆地使用str_replace

混合str_replace函數(混合$搜索,混合$更換,混合$主題[摘要& $計數])

來源:PHP: str_replace

你的代碼可能看起來像這樣(如果$text包含郵件文本):

$text = str_replace("[[FirstName]]", "Name 1", $text); 

如果您要更換一次,你可以使用數組爲$search多個字符串和$replace

$text = str_replace(array("[[FirstName]]", "[[LastName]]"), array("Name 1", "Name 2"), $text); 
+0

哦,是的,你是對的......我的思想卡在正則表達式。我忘了正則表達式是針對非固定字符串的。非常感謝你。 – Jeho

0

你不需要正則表達式你想要的東西,如果你有固定的變量。所有你需要的是str_replace()。將模板的變量放在第一個數組中,並將第二個數組中的數據來源的值放入()中。

例子:

$message = str_replace(array('{name}', '{whatever}'), array($name, $whatever), $message); 
+0

非常感謝。 – Jeho