Как поочередно заменить строки на уникальные значения используя регулярные выражения?
$str = '< p > text </p>';

$count = 0;
$str = preg_replace_callback('/< ?\/?\w+ ?\>/', function() use(&$count) {
  $count++;
  return "#p$count";
}, $str);
или, если разные тэги надо заменять независимо$str = '< p > text </p> <b> fdsgdfsg</b> <p>???</p> <div>hello, world!!< /div>';

$count = [];
$str = preg_replace_callback('/< ?\/?(\w+) ?\>/', function($matches) use(&$count) {
  $key = $matches[1];
  $count[$key] = isset($count[$key]) ? $count[$key] + 1 : 1;
  return "#$key$count[$key]";
}, $str);
типа такого?
sandbox.onlinephpfunctions.com/code/1abc6598e505ca...
или так
sandbox.onlinephpfunctions.com/code/1b9b94e3a7a1e8...