3 przykłady funkcji PHP explode [wraz z kodem źródłowym]
Czasami samo określenie, czy dany podciąg znajduje się w stringu nie wystarczy.
Często potrzebujemy określić, ile razy występuje on w tekście. Jedną z możliwości, udostępnianą przez PHP, jest funkcja explode.
Explode pozwala nam podzielić stringa, przypisując każdy rozdzielony element do kolejnego indeksu w tablicy. Dwie lekcje wcześniej poznaliśmy funkcję implode, która łączyła kilka elementów w jeden, przedzielając je pewnym ciągiem. Explode działa dokładnie na odwrót.
Jednym z najczęstszych użyć funkcji explode podczas programowania w PHP jest podzielenie całej zawartości pliku wg znaku końca linii. Wtedy otrzymamy każdą linijkę pliku jako osobną zmienną.
Na to jednak przyjdzie pora.
Zobaczmy jak wygląda jej podstawowe użycie:
<?php // string do rozdzielenia $dane = "Marcin,Wesel,Bielsko-Biała"; // wykorzystanie funkcji explode, wg przecinka $dane_osobowe = explode(",", $dane); // wyświetlenie otrzymanej tablicy echo $dane_osobowe[0]."<br/>"; echo $dane_osobowe[1]."<br/>"; echo $dane_osobowe[2]."<br/>"; ?>
Funkcja explode biegnie po kolei przez zmienną podaną w drugim argumencie i szuka wystąpienia pierwszego argumentu (w naszym przypadku był to przecinek). W momencie, gdy wystąpienie znajdzie, całą zawartość do tej pory wrzuca jako pierwszy element tablicy, wyrzuca przecinek i biegnie dalej, aż do kolejnego wystąpienia. Jak znajdzie kolejne, wrzuca zawartość do drugiego elementu, wyrzuca separator i tak aż do końca zmiennej.
Co się stanie, jeśli wykonamy funkcję explode na stringu, który nie posiada ani jednego wystąpienia? Zupełnie nic, w rezultacie dostaniemy tego samego stringa, gdyż funkcja nie była w stanie go podzielić.
W ten sposób otrzymaliśmy tablicę $dane_osobowe, która zawiera w sobie każdą część z rozbijanego stringa.
Dalsze zastosowania funkcji explode
Wykorzystując funkcję explode, możemy w łatwy sposób policzyć np. ilość słów w tekście. Wystarczy rozdzielić ciąg według spacji, a następnie zliczyć ilość indeksów w tablicy. Pomoże nam w tym metoda count().
Poniżej prezentacja:
<?php $tekst = "Liwto, ojczyzno moja, Ty jesteś jak zdrowie."; $wyrazy = explode(" ", $tekst); // wyświetli ilość wyrazów w zmiennej $tekst echo count($wyrazy); ?>
Jeszcze obiecane liczenie linijek. Nie potrafisz jeszcze przeczytać zawartości pliku, ale możesz podzielić zawartość każdym wystąpieniem znaku nowej linii.
<?php $tekst = "Litwo Ojczyzno Moja"; $linie= explode("\n", $tekst); // wyświetli ilość linijek w zmiennej $tekst, zakładając, że entery są poprawnie wstawione echo count($linie); ?>
Słowo wyjaśnienia odnośnie znaku nowej linii – to znak spejalny zależny od systemu operacyjnego. Z racji, że PHP w ogromnej większości przypadków, uruchamiany jest na systemach Linux/Unix, ten znak to „\n”. W Windowsie byłby to znak „\r\n”. PHP jest w stanie samodzielnie rozpoznać, jaki znak końca linii ma wstawić. Wystarczy użyć zarezerwowanej stałej PHP_EOL, która w efekcie zamieni się na znak końca linii.
Poczytaj więcej o zarezerwowanych stałych w oficjalnej dokumentacji PHP: http://php.net/manual/en/reserved.constants.php
Link do dokumentacji explode() na znajdziesz tutaj: http://php.net/manual/en/function.explode.php
To tylko niektóre z zastosowań tej funkcji. W przygodzie z programowaniem na pewno natkniesz się na wiele więcej. Następna lekcja poświęcona jest bardzo przydatnym funkcjom, manipulującym ciągami znaków. Zapraszam!
Spis lekcji w rozdziale czwartym
Poprzednia lekcja: Szukanie podciągu | Następna lekcja: Manipulacja ciągami |