strtr()
Введение
Функция strtr() в PHP заменяет подстроки внутри строки. Она особенно полезна при обработке текста, когда определенные последовательности нужно заменить эффективно. В этой статье рассматриваются её синтаксис, поведение и практическое применение.
Понимание функции strtr()
Функция strtr() поддерживает две сигнатуры:
Сигнатура с массивом
strtr(string $str, array $replace) : stringЗдесь $str — это входная строка, а $replace — ассоциативный массив, сопоставляющий подстроки их заменам. Функция заменяет все вхождения ключей на соответствующие значения.
Сигнатура с тремя аргументами
strtr(string $str, string $from, string $to) : stringВ этой форме $from и $to должны иметь одинаковую длину. Каждый символ в $from сопоставляется символу в той же позиции в $to.
Важное поведение: strtr() заменяет подстроки, используя алгоритм «наибольшее совпадение в первую очередь». Это означает, что перекрывающиеся шаблоны разрешаются за счет приоритета самого длинного совпадения, а замены не применяются рекурсивно к результату.
Пример использования
Ниже приведен пример использования функции strtr() в PHP:
Пример PHP strtr()
<?php
$string = "Hello World!";
$translation_rules = array("H" => "J", "W" => "Z");
$translated_string = strtr($string, $translation_rules);
echo $translated_string;В приведенном выше примере мы определяем строку $string и ассоциативный массив $translation_rules. Функция strtr() заменяет указанные подстроки («H» и «W») на их сопоставленные значения («J» и «Z»). Обратите внимание, что strtr() обрабатывает многосимвольные подстроки и применяет замены за один проход без рекурсии.
Заключение
Функция strtr() обеспечивает эффективный способ замены подстрок в PHP. Она поддерживает как отображение на основе массива, так и посимвольный перевод через сигнатуру с тремя аргументами. Поскольку она работает за один проход, используя логику «наибольшее совпадение в первую очередь», она, как правило, быстрее, чем str_replace(), при множественных заменах. Понимание этого поведения помогает разработчикам выбирать правильный инструмент для задач обработки текста.
Практика
Какова цель функции strtr в PHP?