У меня есть строка, которая может содержать несколько совпадений (любое слово, окруженное процентными метками) и массив замен - ключом каждой замены является совпадение регулярного выражения. Какой-то код, вероятно, объяснит это лучше ...
$str = "PHP %foo% my %bar% in!";
$rep = array(
'foo' => 'does',
'bar' => 'head'
);
Желаемый результат:
$str = "PHP does my head in!"
Я пробовал следующее, ни один из которых не работает:
$res = preg_replace('/\%([a-z_]+)\%/', $rep[$1], $str);
$res = preg_replace('/\%([a-z_]+)\%/', $rep['$1'], $str);
$res = preg_replace('/\%([a-z_]+)\%/', $rep[\1], $str);
$res = preg_replace('/\%([a-z_]+)\%/', $rep['\1'], $str);
Таким образом, я обращаюсь к Stack Overflow за помощью. Любой берущий?