Łączenie ciągów
Programując, bardzo często zachodzi potrzeba połączenia ze sobą dwóch, lub więcej, ciągów
znaków. Można to zrobić na różne sposoby. Jeden z nich przedstawiłem na lekcji o operatorach -
operator łączenia. Korzystaliśmy z niego już nieraz. Przypomnijmy sobie jego zastosowanie.
Poniżej przykład:
<?php
$wyswietl = "Bardzo";
$wyswietl .= " lubię";
$wyswietl .= " placki.";
// polecenie wyświetli napis:
// "Bardzo lubię placki."
echo $wyswietl;
// wyświetli napis:
// Moje motto to: "Bardzo lubię placki."
echo 'Moje motto to: "'.$wyswietl.'"';
?>
Działanie operatora łączenia jest bardzo oczywiste. Po prostu łączy ciąg z prawej oraz lewej
strony w jeden. Istnieje jeszcze inna metoda na połączenie ciągów...
Funkcja implode()
Funkcja implode łączy zbiór ciągów, przekazany w postaci tablicy, w jeden, podzielony
łącznikiem. Przyjmuje dwa argumenty, w tym jeden opcjonalny. Jako pierwszy podajemy
element łączący - domyślnie jest to pusty ciąg. Drugim argumentem jest tablica ciągów, którą
chcemy połączyć. Wartość zwracana to ciąg znaków składający się z elementów tablicy,
przedzielonych łącznikiem.
Zobaczmy poniższy listing:
<?php
$data[0] = "18";
$data[1] = "07";
$data[2] = "1976";
$wyswietl_date = implode(" - ", $data);
// wyświetli "18 - 07 - 1976"
echo $wyswietl_date;
?>
W przypadku pominięcia pierwszego argumentu zwrócony zostałby ciąg "18071976". Funkcja
implode jest bardzo użyteczna, gdy mamy do czynienia z wieloma zmiennymi formularza.
Możemy je wtedy przedzielić, np. przecinkiem, po czym zapisać do jednej zmiennej.
Szukanie podciągu
Bardzo ważny element, przydatny podczas tworzenia różnego rodzaju ksiąg gości oraz for
internetowych. Niezbędny szczególnie wtedy, gdy wpisy nie są moderowane i od razu
wyświetlają się na stronie. Najczęściej chcemy sprawdzić, czy dany wyraz występuje wewnątrz
ciągu znaków. Przykładowo, gdy chcemy wprowadzić zakaz wpisywania wulgaryzmów.
Najczęściej stosowana funkcja, spełniająca powyższe zadanie, to strpos(). Przyjmuje ona
dwa argumenty, ciąg szukany oraz ciąg, w którym szukamy. W przypadku znalezienia wyrazu
wewnątrz szukanego stringa, funkcja zwróci pozycję występowania wyrazu. Jeżeli natomiast
podciąg nie zostanie znaleziony, funkcja zwróci wartość logiczną FALSE.
Zobaczmy jej zastosowanie w praktyce:
<?php
$wpisany_tekst = "Rozwijam swoją wiedzę w dziedzinie PHP.";
$czy = strpos($wpisany_tekst, "cholera");
if ($czy == FALSE) // nie znaleziono słowa cholera
echo "Można wyświetlić: $wpisany_tekst.";
else // znaleziono szukany wyraz
echo "Tekst zawiera wulgarne słownictwo.";
?>
Instrukcja ta w łatwy sposób pozwala nam znaleźć szukaną frazę.
Funkcja explode
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.
Zobaczmy jak jej użyć:
<?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/>";
?>
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);
?>
To tylko niektóre z zastosowań funkcji explode.