174 PHP i MySQL dla każdego
Listing 6.12. Wykorzystanie funkcji strtok
<?php
$str - "jeden dwa trzy cztery pięć": Stok - strtok($str, " "); while($tok !- ""){ echo("$tok<br>"):
Stok - strtokC ");
}
Widoczna na listingu funkcja strtok dzieli ciąg str na słowa, względem znaków spacji. Wynik jej pierwszego wywołania jest przypisywany zmiennej tok. Wynikiem tym jest pierwszy token. Dalsze wywołania odbywają się w pętli whi 1 e. Zauważmy, że wywołania te pozbawione są pierwszego argumentu. Każde takie wywołanie zwraca kolejny token lub pusty ciąg znaków, jeśli nie ma więcej tokenów. Ten właśnie warunek jest wykorzystywany do zakończenia pętli whi 1 e.
Ostatnią funkcją omawianą w tej sekcji jest substr. Zwraca ona dowolnie wybrany podciąg z ciągu znaków. Jej schematyczne wywołanie ma postać: substrtstr, starty. ile])
Funkcja zwraca fragment ciągu str, rozpoczynający się w pozycji wskazywanej przez stert zawierający i le znaków. Parametr start może być dodatni lub ujemny; w tym drugim przypadku pozycja startowa obliczana jest od końca ciągu strl. Parametr i le jest opcjonalny. Jeśli go nie ma, wywołanie traktowane jest tak, jakby wskazywał on koniec ciągu str. Jeśli parametr i le jest obecny i jest dodatni, określa liczbę pobranych znaków. Jeśli parametr i le jest obecny i jest ujemny, określa, ile znaków z końca ciągu strl ma być pominiętych w ciągu wynikowym (por. też opis funkcji substr_replace). Kilka przykładowych wywołań funkcji substr z różnymi argumentami obrazuje listing 6.13. Efekt jego działania został zaprezentowany na rysunku 6.10.
Listing 6.13. Przykładowe wywołania funkcji substr z różnymi parametrami
<?php
$str = substrCabcdef". 1): echo("substr(\"abcdef\“. 1) = $str<br>"):
$str - substrCabcdef. 2. 4): echo("substr(V'abcdef\\ 2, 4) = $str<br>");
$str - substrCabcdef". -2);
echo( "substrCabcdef, -2) - $str<br>");
$str - substrCabcdef". 2. -2): echoCsubstr(\"abcdef\". 2. -2) - $str<br>“):
$str - substrCabcdef". -5. -3): echo("substr(\"abcdef\". -5. -3) - $str<br>”);