Функција sscanf
Функцијата sscanf анализира стринг, користејќи го назначениот формат,
и враќа вредности. Како прв параметар функцијата прима стринг за анализа,
како втор - стринг на формат, а следните параметри (незадолжителни) - променливи,
во кои ќе бидат запишани резултатите од парсирањето.
Во стрингот на формат се користат специјални симболи (форматни спецификатори), кои започнуваат со знакот % и управуваат со форматирањето на излезот.
Синтакса
sscanf(string $str, string $format [, mixed &$... ]): mixed
Форматни спецификатори
| Спецификатор | Опис |
|---|---|
%s |
Стринг |
%d |
Цел број со знак (децимален) |
%u |
Цел број без знак (децимален) |
%f |
Број со подвижна точка (зависен од локала) |
%F |
Број со подвижна точка (не зависен од локала) |
%c |
Симбол според ASCII-код |
%x |
Цел број во хексадецимален систем (мали букви) |
%X |
Цел број во хексадецимален систем (големи букви) |
%o |
Цел број во октален систем |
%b |
Цел број во бинарен систем |
%e |
Научна нотација (мали букви) |
%E |
Научна нотација (големи букви) |
%g |
Кратка нотација %e или %f |
%G |
Кратка нотација %E или %F |
%% |
Знак за процент |
Пример
Да го парсираме стрингот, извлекувајќи број и текст:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Резултат од извршувањето на кодот:
[42, 'the']
Пример
Да ја разложиме датата на составни делови:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Резултат од извршувањето на кодот:
'Year: 2023, Month: 12, Day: 31'