Как я уже сказал в комментариях
$array = [
'/\bpwr\b/i' => 'power',
'/\bbrk\b/i' => 'brake'
];
$str = preg_replace(array_keys($array), $array, $str);
Тогда вы просто добавляете больше слов и заменяете их. Preg Replace лучше, потому что вы можете использовать \b
или границу слова, которая предотвращает такие вещи, как pwr
в pwrstr
или что у вас есть. \b
соответствует \W
или не \w
или по-английски (смеется), что-нибудь не a-z
A-Z
0-9
и _
.
Замена строки может соответствовать части слова, которой вы не хотите рисковать.
Еще одно преимущество preg_replace - это \b(pwr|powr)\b
, где вы можете сопоставить оба из них и заменить их одним и тем же. ()
- это группа захвата, здесь я использую ее просто для группировки слов, чтобы не повторять \b
. И |
- это ИЛИ.
Последнее, что вы можете использовать флаг i
(после конечного разделителя /foo/i
), чтобы сделать его нечувствительным к регистру. С str_ireplace()
вы можете сделать то же самое, но вы не можете дифференцировать для каждого матча, как вы можете с preg_replace()
.
Оба работают с массивами, поэтому вам не нужно циклически повторять многократную замену с помощью str_repace()
или preg_replace()
.
Если вам нужна помощь или просто для проверки регулярных выражений, этот сайт является одним из лучших тестовых сайтов Regex в районе https://regex101.com/ (IMO). Тем не менее, есть небольшая разница (вероятно, вы ничего не заметите), но есть еще один хороший сайт http://preg_replace.onlinephpfunctions.com/. Если вы посмотрите на навигацию, в ней есть куча вещей с песочницей PHP.
Ура!