Rozdział 6. ♦ Ciągi znaków, data i czas 171
od najczęściej wykorzystywanej funkcji str_replace, której schematyczne wywołanie ma postać:
str_replace(stri. str2. str3):
Funkcja ta zwraca ciąg str3 przetworzony w taki sposób, w którym wszystkie wystąpienia ciągu strl zostały zamienione na ciąg str2. Przykładowe wywołanie:
$str = str_replace("£imier. "Ala", "*imie* ma kota."): spowoduje przypisanie zmiennej str ciągu znaków Ala ma kota. Począwszy od PHP w wersji 4.0.5 każdy z argumentów str_replace może być tablicą co znacznie rozszerza możliwości funkcji. Niektóre z nich ilustruje kod widoczny na listingu 6.10.
Listing 6.10. Wykorzystanie możliwości funkcji str_replace
<?Php
Sarrl - arrayCfcimiel*". "Simie2*"):
$arr2 - arrayCAla". "Ola"):
$arr3 - array("*imiel%". "ma", "kota."):
$str - str_replace($arrl. $arr2. "SSimiel* ma kota. Ximie2* ma psa."): echo("$str<br>"):
$str » str_replace($arrl, "Magda", "KimieU ma kota. £imie2* ma psa."): echo("$str<br>"):
$str - str_replace("8imielX". “Ela", $arr3): foreach($str as Sword) echo("$word "):
?>
Wynikiem działania skryptu będą trzy ciągi znaków:
Ala ma kota. Ola ma psa.
Magda ma kota. Magda ma psa.
Ela ma kota.
W pierwszym przypadku ciągi wymieniane zawarte są w tablicy arrl, a zatem są to &i miel£ i Ximie2&. Ciągi podstawiane zamiast nich są natomiast zawarte w tablicy arr2, a zatem są to Ala i Ola. W przypadku drugim wszystkie ciągi, które będą wymieniane, zawarte są w tablicy arrl, natomiast ciąg, na który będą one wymieniane, to Magda. Przypadek trzeci jest nieco odmienny. Tym razem zamiana ciągów jest wykonywana w tablicy, każdy występujący w niej ciąg fcimiel£ jest zamieniany na ciąg El a. W tym przypadku funkcja zwróci również nie ciąg wynikowy, ale tablicę wynikową. Odmianą funkcji str_replace jest str_ireplace. Jak łatwo się domyślić, jej działania jest analogiczne; nie bierze ona jednak pod uwagę wielkości liter.
Kolejną funkcją zamieniająca podciągi znaków jest substr_replace, o schematycznej postaci:
siubstr_replace(stri, str2, startL. Hel):