2012-06-14 25 views
0

我需要更換這些標籤之間的內容,並保持標籤PHP標籤之間的替代物,並讓他們

$source="Original string <p>bal bla bla</p>**** <!--{date}-->REPLACE ME!!!<!--/{date}-->" 
$replaceText = '2012-06-14'; 
$start = '<!--{date}-->'; 
$end = '<!--/{date}-->'; 

preg_replace('#('.preg_quote($start).')(.*)('.preg_quote($end).')#si', '$1'.$replaceText.'$3', $source); 

結果是:

"Original string <p>bal bla bla</p>**** 012-06-14<!--/{date}-->" 

缺少啓動標籤和2。 想法?

+0

在var和replaceText之間插入一個空格,就像我的答案 – Sena

回答

3

這是因爲你這樣做得到: '$12012-06-14$3'作爲替代。所以我猜它採取$12而不是$1

您可能要測試什麼的寫在文檔的${1}代替$1

+0

它的工作原理!非常感謝。我花了2個小時。 – Daviddd

1

就像那個

的VAR和replaceText之間的空間
preg_replace('#('.preg_quote($start).')(.*)('.preg_quote($end).')#si', '$1 '.$replaceText.' $3', $source);