- preg_replace_callback: documentation ( source)
- preg_quote: documentation ( source)
<?php
$string='bla bla xxx bla *xxx bla bla **xxx bla bla ***xxx bla bla ****xxx';
$search='xxx';
$char='*';
preg_replace_callback(
'/(' . preg_quote($char) . '*)' . $search . '/',
function($matches) {
print strlen($matches[1]);
if(strlen($matches[1]) % 2 !== 0) {
return $matches[1] . '*';
}
},
$string
);
print $string;