我正在修改具有短代碼的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替換短代碼的第一個實例?
你可以設置一個上限爲第四參數:http://php.net/manual/en/function.preg-replace.php –
這是一個自定義的CMS或現有的產品? – Scuzzy
@UlrikMcArdle:你應該把它作爲答案! – Toto