这就是我现在所做的:
if (strpos($routeName,'/nl/') !== false) {
$routeName = preg_replace('/nl/', $lang , $routeName, 1 );
}
我更换了
nl
与前。 de
.但是现在我想更换second occurrence
.什么是最简单的方法来做到这一点?
最佳答案
@Casimir 的答案似乎适用于大多数情况。另一种选择是 preg_replace_callback
带柜台。如果您只需要替换特定的第 n 次出现。
#-- regex-replace an occurence by count
$s = "…abc…abc…abc…";
$counter = 1;
$s = preg_replace_callback("/abc/", function ($m) use (&$counter) {
#-- replacement for 2nd occurence of "abc"
if ($counter++ == 2) {
return "def";
}
#-- else leave current match
return $m[0];
}, $s);
这利用了本地
$counter
, 在每次出现时在回调中递增,并且在此处简单地检查固定位置。
关于php - preg_replace() 替换第二次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23239061/