3 przykłady PHP explode: dzielenie stringa

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

Dodaj komentarz