sscanf
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
sscanf — Разбирает строку в соответствии с заданным форматом
Описание
Функция sscanf() похожа на функцию
printf(), но используется не для вывода, а для
ввода данных. sscanf() интерпретирует строку
string
в соответствии с форматом
format
, указанным в документации к
функции sprintf().
Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что, например, символ табуляции \t в строке формата соответствует символу пробела во входной строке.
Список параметров
-
string
-
Обрабатываемая строка (string).
-
format
-
Формат, в соответствии с которым будет интерпретирована строка
string
, описанный в документации к функции sprintf() со следующими отличиями:- На функцию не влияют настройки локали.
-
F
,g
,G
иb
не поддерживаются. -
D
обозначает десятичное число. -
i
обозначает целое число с автоматическим определением системы счисления. -
n
обозначает обработанное количество символов на данный момент. -
s
обозначает остановить чтение на любом пробельном символе.
-
vars
-
Необязательные переменные, передаваемые по ссылке, которым будут присвоены считанные значения.
Возвращаемые значения
Если переданы только эти два аргумента, будет возвращен массив. В противном случае, считанные из строки значения будут присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.
Если ожидается больше подстрок в параметре format
,
чем доступно в параметре str
,
то будет возвращено значение null
.
Примеры
Пример #1 Пример использования sscanf()
<?php
// получаем серийный номер
list($serial) = sscanf("SN/2350001", "SN/%d");
// и дату изготовления
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Узел $serial был изготовлен: $year-" . substr($month, 0, 3) . "-$day\n";
?>
Если переданы необязательные аргументы, значения будут присвоены им, а возвращено будет количество присвоенных значений.
Пример #2 sscanf() - использование необязательных аргументов
<?php
// получить имя автора и сформировать запись в формате DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>
Смотрите также
- printf() - Выводит отформатированную строку
- sprintf() - Возвращает отформатированную строку
- fprintf() - Записывает отформатированную строку в поток
- vprintf() - Выводит отформатированную строку
- vsprintf() - Возвращает отформатированную строку
- vfprintf() - Записывает отформатированную строку в поток
- fscanf() - Обрабатывает данные из файла в соответствии с форматом
- number_format() - Форматирует число с разделением групп
- date() - Форматирует вывод системной даты/времени