@User782
Кратко о себе

Можно ли массивом сделать замены preg_replace?

При открытии страницы выполняется несколько preg_replace

в теле скобок <...> делает замену

$r = preg_replace('/\((?=[^<>]*>)/', '%28', $r);
$r = preg_replace('/\)(?=[^<>]*>)/', '%29', $r);
$r = preg_replace('/\á(?=[^<>]*>)/', '%C3%A1', $r);
$r = preg_replace('/\é(?=[^<>]*>)/', '%C3%A9', $r);
$r = preg_replace('/\ã(?=[^<>]*>)/', '%C3%A3', $r);
$r = preg_replace('/\ú(?=[^<>]*>)/', '%C3%BA', $r);


Можно ли массивом делать замены?

Или для нагрузки это ничего не изменит?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@rPman
Да конечно, preg_replace принимает как первым аргументом так и вторым - массив, если оба будут массивами, то метод будет использовать строчку замены соответствующую строке условию.

Еще есть preg_replace_callback и preg_replace_callback_array почитай документацию и примеры, еще более гибкие операции

p.s. осторожно, utf8 этими функциями работает с оговорками (модификатор /u), есть методы mb_ereg_... но array там уже не поддерживается
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы