Функция 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'