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

phpsscanf(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<?php
  $res = sscanf("42 is the answer", "%d is %s");
  print_r($res);
?>

Wynik wykonania kodu:

php[42, 'the']

Przykład

Przeanalizujmy datę na składniki:

php<?php
  $date = "2023-12-31";
  list($year, $month, $day) = sscanf($date, "%d-%d-%d");
  echo "Year: $year, Month: $month, Day: $day";
?>

Wynik wykonania kodu:

php'Year: 2023, Month: 12, Day: 31'

Zobacz też

  • funkcję printf,
    która wyświetla sformatowany ciąg
  • funkcję explode,
    która dzieli ciąg za pomocą separatora