Урок 19. PHP — str_replace

Урок 19. PHP — str_replace

Сейчас мы рассмотрим одну очень полезную функцию для работы со строками, а именно для замены частей строк. Это функция str_replace, которая похожа на метод в текстовых редакторах «Заменить». Как ее использовать, примеры и советы читайте ниже.



Параметры вызова

str_replace имеет три параметра, которые все являются обязательными.

str_replace(search, replace, originalString)
  • search — это то, что вы хотите найти. Это может быть строка или массив.
  • replace — все найденные элементы, которые вы задали в search для поиска, будут заменены на это значение. Это, опять же, может быть строка или массив.
  • originalString — исходная строка, в которой и будет производиться поиск. Функция НЕ меняет входную строку!
На самом деле, здесь, как и во всех предыдущих уроках, все просто. Давайте посмотрим на пример кода и все сразу встанет на свои места.

Пример применения str_replace

Итак, есть у нас входная строка «На полке лежит X килограмм мандарин». Вместо «X» мы хотим подставить нужную цифру. Может для этого воспользоваться реплейсом примерно таким образом:

//Входная строка, которую будем использовать как шаблон $rawstring = "На полке лежит X килограмм мандарин."; //заменяем $str_1 = str_replace("X", "10", $rawstring); //можно и на другое значение заменить, любое $str_2 = str_replace("X", "135473", $rawstring); echo "Первый раз: ". $str_1 . "<br />"; echo "Второй раз: ". $str_2; Получаем следующее:

Первый раз: На полке лежит 10 килограмм мандарин. Второй раз: На полке лежит 135473 килограмм мандарин. Пример, конечно, не из лучших, я просто другого не придумал, но он отражает суть, верно? Надеюсь все понятно, если нет, то спрашивайте в комментариях.

str_replace с массивами: несколько замен в одной

В примере мы использовали реплейс, чтобы заменить одно слово «X» на нашу строку (число или что угодно), но что если мы хотим заменить много слов? Можно попробовать просто использовать функцию несколько раз, или же создать массив слов, КОТОРЫЕ будем заменять, а также второй массив, со значениями НА КОТОРЫЕ будем заменять, чтобы получить результат за один вызов функции.

Давайте расширим тот же пример, но позаменяем еще что-то.

//Строка — шаблон $rawstring = "На Z лежит X килограмм отборных Y."; //массив ЧТО будем заменять $placeholders = array(‘Z’, ‘X’, ‘Y’); //Массив НА ЧТО будем заменять $vals_1 = array(‘полке’, ‘5’, ‘апельсинов’); //Ну или на это $vals_2 = array(‘столе’, ‘189’, ‘груш’); //заменяем раз $str_1 = str_replace($placeholders, $vals_1, $rawstring); //заменяем два $str_2 = str_replace($placeholders, $vals_2, $rawstring); echo "Один: ". $str_1 . "<br />"; echo "Два: ". $str_2; Соответственно, что мы получим:

Один: На полке лежит 5 килограмм отборных апельсинов. Два: На столе лежит 189 килограмм отборных груш. Такие вот дела. Теперь можете сами прикинуть как вы сможете использовать данный метод. На самом деле, он Очень полезен! Например, при написании парсеров — просто крайне необходим!

← Файлы | Содержание | Работа с cURL →