Die ersten 4 Zeilen überschreiben die Variable $frage
nur ein ums andere Mal - Sie könnten die ersten 3 Zeilen demnach weglassen, ohne dass sich die Funktion ändert.
Prinzipiell ist eine FOR-Schleife schon hübsch. Aber wenn Sie die Kennungen ohnehin einzeln eintragen müssen, dann versuchen Sie es bitte einmal ohne:
replace('%text1%', 'AB01', 'response');
replace('%text2%', 'AB02', 'response');
replace('%text3%', 'AB03', 'response');
replace('%text4%', 'AB04', 'response');
Es ginge schon auch eleganter mit einer Schleife - aber ich denke, das ist im vorligenden Fall (N=4 Fragen) die einfachste Variante.