['-' => '#', '$' => '%'] * заменит все дефисы на # и все доллары на %. * @param string $subject Строка, в которой нужно выполнить замену. * @param string $encoding (необязательный) Кодировка (по умолчанию, UTF-8). * * @return string Возвращает новую строку с выполненными заменами. */ public static function ReplaceAll (array $searchReplace, string $subject, string $encoding = 'UTF-8'): string { // Создаю результат $result = $subject; // Для каждой пары поиска и замены foreach ($searchReplace as $search => $replace) // - заменяю все вхождения строки поиска на строку замены в заданной строке $result = self::Replace($search, $replace, $result, $encoding); // Возвращаю результат return $result; } /** * Функция заменяет все вхождения строки поиска на строку замены в заданной строке (аналог mb_str_replace). * * @param string $search Строка, которую нужно найти и заменить. * @param string $replace Строка, на которую нужно заменить найденную строку. * @param string $subject Строка, в которой нужно выполнить замену. * @param string $encoding (необязательный) Кодировка (по умолчанию, UTF-8). * * @return string Возвращает новую строку с выполненной заменой. */ public static function Replace (string $search, string $replace, string $subject, string $encoding = 'UTF-8'): string { // Если кодировка не UTF-8 if ($encoding != 'UTF-8') { // - то перекодируем строку поиска, замены и исходную строку в UTF-8 $search = mb_convert_encoding($search, 'UTF-8', $encoding); // - и перекодируем строку замены в UTF-8 $replace = mb_convert_encoding($replace, 'UTF-8', $encoding); // - и перекодируем исходную строку в UTF-8 $subject = mb_convert_encoding($subject, 'UTF-8', $encoding); } // С помощью регулярного выражения заменяем все вхождения строки поиска на строку замены $result = preg_replace('/' . preg_quote($search, '/') . '/u', $replace, $subject); // Если кодировка не UTF-8 if ($encoding != 'UTF-8') // - то перекодируем результат в исходную кодировку $result = mb_convert_encoding($result, $encoding, 'UTF-8'); // Возвращаем результат return $result; } }