- preg_replace_callback: documentation ( source)
- sprintf: documentation ( source)
<?php
$html = <<<HTML
This is <h2>H2 nummer 1</h2>
and this is This is <h2>H2 nummer 2</h2>
This is <h2>H2 nummer 3</h2>
HTML;
function replace_text_wps($content)
{
return preg_replace_callback('#<h2>(.*?)</h2>#', function ($m) {
static $h2Count = 0;
return sprintf('<h2 id="%s">%s</h2>', ++$h2Count, $m[1]);
}, $content);
}
echo replace_text_wps($html);