Я не могу найти какой-либо метод для замены фрагментов строки без оценки замены, если искомая фраза не найдена.
например,
public static function replaceAlias($text) {
...
$newtext = str_replace('%noreg%', Db::querySingle('SELECT COUNT(*) AS `noreg` FROM `vk-users`')['noreg'], $text);
...
return $newtext;
}
Каждый запрос на дб используетсявремя, когда вызывается replaceAlias
, даже если %noreg%
не найдено, и когда у меня много команд str_replace
, это оказывает большое ненужное давление на базу данных
Я знаю, что могу использовать условия if
искать, если в $text
используется псевдоним, а затем заменить его, но теперь я хочу только узнать, есть ли какое-нибудь хорошее и быстрое решение, которое уже встроено в php?