Je veux remplacer la classe avec le texte div comme ceci:
Ce: <div class="grid-flags" >FOO</div>
Regex Remplacer par backreference modifié par des fonctions
Devient: <div class="iconFoo" ></div>
Ainsi, la classe est remplacé par « icône ». ucfirst (strtolower (FOO)) et le texte est retiré
test HTML
<div class="grid-flags" >FOO</div>
Motif
'/class=\"grid-flags\" \>(FOO|BAR|BAZ)/e'
remplacement
'class="icon'.ucfirst(strtolower($1).'"'
Ceci est un exemple d'une chaîne de remplacement I J'ai essayé de centaines apparemment. J'ai lu que le modificateur/e évalue le code PHP, mais je ne comprends pas comment cela fonctionne dans mon cas, car j'ai besoin des guillemets autour du nom de la classe, donc je suis perdu sur la façon de le faire.
J'ai essayé des variations sur le backref par exemple. strtolower ('$ 1'), strtolower ('\ 1'), strtolower ('{$ 1}')
J'ai essayé des guillemets simples et doubles et divers échappements etc et rien n'a encore fonctionné.
J'ai même essayé preg_replace_callback() sans chance
function callback($matches){
return 'class="icon"'.ucfirst(strtolower($matches[0])).'"';
}
Merci à tous pour vos réponses au cours du week-end. C'était la manière originale que j'essayais de faire et la plus concise, alors j'ai fait de ceci la réponse acceptée, mais vous avez tous fait des points remarquables. – Jesse