preg_replace_callback Exemple: // remplacer les balises en majuscule par des minuscules $a = '<H2>TEST</H2><p>test</P>'; $b = preg_replace_callback("/<(\/?)([A-Z0-9]+)/", function($token) { return '<'.$token[1].$token[2]; }, $a); echo $b; // <h2>TEST</h2><p>test</p>