Jak pobrać określoną ilość znaków z końca ciągu

Z Podręcznik Administratora by OPZ SGU
Wersja z dnia 17:23, 15 lut 2018 autorstwa Adminka23 (dyskusja | edycje) (Zastępowanie tekstu - "</source>" na "</pre>")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Czasem potrzebujemy pobrać określona ilość znaków z końca ciągu w celu choćby odmiany przez przypadki.

Możemy wykorzystać do tego funkcje substr która potrafi również przyjmować argumenty ujemne :)


Przykład wykorzystania do zmiany nazwiska na żenskie.

function nazwisko_zenskie($wartosc){
$koncowka = substr($wartosc, -3);
if($koncowka == 'ski'){
$przetworzone = str_replace($koncowka, "", $wartosc);
$nazwisko = ''.$przetworzone.'ska';
return $nazwisko;
}else{
return $wartosc;
}

}

Opis:

Funkcja przyjmuje jako parametr na przykład nazwisko Tarkowski

następnie funkcją substr sprawdzamy czy dany ciąg nie zawiera ostatnich 3 znaków o treści "ski". Oznacza to że nazwisko jest w formie męskiej.

Na kolejnym etapie jeśli ciąg je zawiera to funkcją preg_replace usuwamy je z ciągu i na koniec tworzymy żeńską odmianę przez dodanie "ska" na końcu tego co pozostało po osunięciu "ski".

W przypadku gdy ciąg nie ma formy męskiej funkcja zwraca "pierwotną" wersje spowrotem