wtorek,
Funkcja str_replace
Dostępna w języku PHP funkcja str_replace
służy do zamiany wszystkich wystąpień określonego łańcucha znaków na inny ciąg znaków w obrębie danego tekstu. Jest to przydatne narzędzie w razie potrzeby modyfikacji napisów, na przykład usuwając niepożądane słowa lub zamieniając je na inne.
Podstawowa składnia
str_replace($search, $replace, $subject, $count)
$search
– ciąg znaków do zastąpienia;$replace
– ciąg znaków, na który chcemy zamienić znaleziony ciąg;$subject
– ciąg znaków, w którym ma nastąpić zamiana;$count
– opcjonalny parametr, który po wykonaniu funkcji będzie zawierał liczbę dokonanych zamian.
Przykład użycia
$text = "Witaj świecie! Witaj ponownie!";$search = "Witaj";$replace = "Hello";$modifiedText = str_replace($search, $replace, $text);echo $modifiedText; // Wyświetli: Hello świecie! Hello ponownie!
W powyższym przykładzie funkcja str_replace
zamienia wszystkie wystąpienia słowa „Witaj” na „Hello” w ciągu $text
.
Warto pamiętać, że str_replace
jest funkcją wielobajtową, co oznacza, że prawidłowo obsługuje ciągi znaków w różnych kodowaniach, takich jak UTF-8. Dzięki temu jest bezpieczna w użyciu nawet z tekstem zawierającym znaki specjalne lub litery z alfabetów innych niż łaciński.
Funkcja str_replace i tablice
Funkcja str_replace
może być również używana z tablicami, co pozwala na jednoczesne przeprowadzenie wielu zamian w ciągu znaków. Tablic można użyć zarówno dla argumentów $search
(wyszukiwanych ciągów), $replace
(ciągów zastępujących), jak i $subject
(tekstu, w którym odbywa się zamiana). Daje to dużą elastyczność w przetwarzaniu ciągów znaków.
Zamiana wielu wartości
Możesz przekazać tablice do parametrów $search
i $replace
, co pozwoli na wykonanie wielu zamian jednocześnie. PHP będzie przeszukiwał $subject
, szukając elementów z $search
i zamieniając je na odpowiadające im elementy z $replace
.
$search = ['jabłko', 'banan', 'gruszka'];$replace = ['pomarańcza', 'malina', 'śliwka'];$text = 'Na stole leży jabłko, banan i gruszkę.';$modifiedText = str_replace($search, $replace, $text);echo $modifiedText; // Wyświetli: Na stole leży pomarańcza, malina i śliwka.
Różna liczba elementów w $search i $replace
Jeśli tablice $search
i $replace
mają różną liczbę elementów, nadmiarowe elementy w dłuższej tablicy będą ignorowane. Jeśli $replace
jest krótsze, brakujące wartości zostaną traktowane jako puste ciągi, co skutkuje usunięciem znalezionych ciągów z $search
w tekście.
$search = ['jabłko', 'banan', 'gruszka'];$replace = ['pomarańcza', 'malina'];$text = 'Na stole leży jabłko, banan i gruszka.';$modifiedText = str_replace($search, $replace, $text);echo $modifiedText; // Wyświetli: Na stole leży pomarańcza, malina i .
Użycie tablic w $subject
Możesz również użyć tablicy jako $subject
, co spowoduje, że funkcja str_replace
zostanie zastosowana do każdego elementu tablicy indywidualnie.
$search = 'jabłko';$replace = 'pomarańcza';$texts = ['Na stole leży jabłko.', 'Jabłko ma witaminy.'];$modifiedTexts = str_replace($search, $replace, $texts);print_r($modifiedTexts); // Wyświetli: Array ( [0] => Na stole leży pomarańcza. [1] => Pomarańcza ma witaminy. )