2017-08-02 114 views
0

我正在修改具有短代碼的CMS。簡碼看起來像這樣僅替換第一個短代碼PHP

[code]Total_Public_Activities id=1 type=table[/code] 

一個CMS頁面可能有多個簡碼。用戶可能不小心一次使用相同的短碼。在我的情況下,不止一次地使用相同的短代碼導致第二項不會出現併產生JavaScript錯誤。這樣做的原因是,CMS使用

str_replace($searchStr, $myContent, $getCmsPage->page_content); 

這導致重複的是兩個元件的內容元素被放置在頁面上。 JavaScript有問題。我改變了這一行以使用preg_replace。

preg_replace($escapedSearchPattern, $myContent, $getCmsPage->page_content); 

我的$ escapedSearchPattern樣子:

/\[code\]Total_Public_Activities id=1 type=table\[\/code\]/ 

然而,似乎preg_replace函數時,將其插入PAGE_CONTENT修改$爲myContent更換內容字符串。在一個實例中,我有一個datatables.js表,並且在一行的每個元素中放置了$ searchStr(即短代碼)。爲什麼preg_replace不能按預期工作?我怎樣才能使用PHP替換短代碼的第一個實例?

+2

你可以設置一個上限爲第四參數:http://php.net/manual/en/function.preg-replace.php –

+0

這是一個自定義的CMS或現有的產品? – Scuzzy

+0

@UlrikMcArdle:你應該把它作爲答案! – Toto

回答