preg_replace_callback前置递增数字

时间:2017-02-04 06:55:09

标签: php preg-replace-callback

在字符串中,我有以下子串的出现(可以是唯一的或重复的)

CX0001 CX0001 CX0001 CX0002 CX0003 CX0123

我想要的是每次出现的CX *前面加上一个递增的数字,比如1200.所以,上面的内容变成

1201 CX0001 1202 CX0001 1203 CX0001 1204 CX0002 1205 CX0003 1206 CX0123

CX *字符串始终是包含6个字符的字母数字子字符串。可能会或可能不会在整个字符串中重复。

如何使用preg_replace_callback完成此操作还是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

以下是一个例子:

<?php

$content = "this is some CX0001 to Check CX0001 and CX0001 or CX0002 CX0003 CX0003 for the CX0123 that we need CX0123 and CX0001 and see if the same works works";

$count = 1200;
function rep_count($matches) {
  global $count;
  return 'MARKER'.$count++.' '.'CX';
}

$content = preg_replace_callback('/CX/', 'rep_count', $content);
echo $content;
?>