Za darmo na e-mailPraktyczny kurs PHP (aż 200 stron!)

Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail

3 przykłady PHP explode: dzielenie stringa [wraz z kodem źródłowym]

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

Ominiesz taką okazję?Praktyczny Kurs PHP (aż 200 stron!) za darmo

Gorąco polecam, naprawdę warto skorzystać! To nic nie kosztuje. Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail.