Funkcja sscanf
Funkcja sscanf analizuje ciąg, używając określonego formatu,
i zwraca wartości. Pierwszym parametrem funkcja przyjmuje ciąg do analizy,
drugim - ciąg formatujący, a kolejne parametry (opcjonalne) - zmienne,
do których zostaną zapisane wyniki analizy.
W ciągu formatującym używane są specjalne symbole (specyfikatory formatu), które zaczynają się od znaku % i sterują formatowaniem wyjścia.
Składnia
sscanf(string $str, string $format [, mixed &$... ]): mixed
Specyfikatory formatu
| Specyfikator | Opis |
|---|---|
%s |
Ciąg |
%d |
Liczba całkowita ze znakiem (dziesiętna) |
%u |
Liczba całkowita bez znaku (dziesiętna) |
%f |
Liczba zmiennoprzecinkowa (zależna od ustawień regionalnych) |
%F |
Liczba zmiennoprzecinkowa (niezależna od ustawień regionalnych) |
%c |
Znak według kodu ASCII |
%x |
Liczba całkowita w systemie szesnastkowym (małe litery) |
%X |
Liczba całkowita w systemie szesnastkowym (wielkie litery) |
%o |
Liczba całkowita w systemie ósemkowym |
%b |
Liczba całkowita w systemie dwójkowym |
%e |
Notacja naukowa (małe litery) |
%E |
Notacja naukowa (wielkie litery) |
%g |
Krótki zapis %e lub %f |
%G |
Krótki zapis %E lub %F |
%% |
Znak procentu |
Przykład
Przeanalizujmy ciąg, wyodrębniając liczbę i tekst:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Wynik wykonania kodu:
[42, 'the']
Przykład
Przeanalizujmy datę na składniki:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Wynik wykonania kodu:
'Year: 2023, Month: 12, Day: 31'