我正在修改包含短代码的CMS。短代码看起来像这样
[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似乎在将$ myContent替换内容字符串插入page_content时修改它。在一个例子中,我有一个datatables.js表,并且在一行的每个元素中放置了$ searchStr(即短代码)。为什么preg_replace不能按预期工作?如何使用PHP替换短代码的第一个实例?
答案 0 :(得分:0)
您可以将限制设置为第四个参数:http://php.net/manual/en/function.preg-replace.php
nums = [23, 44, 65, 78, 87, 11, 33, 44, 3]
for i in range(2, 7, 2):
nums[i] //= 2 # here 2 is the constant 'k'
print(nums)
>>> [23, 44, 32, 78, 43, 11, 16, 44, 3]