(PHP 4 >= 4.0.1, PHP 5, PHP 7)
sscanf — Разбирает строку в соответствии с заданным форматом
Описание
$str
, string $format
[, mixed &$...
] )Функция sscanf() похожа на функцию printf(), но используется не для вывода, а для ввода данных. sscanf() интерпретирует строку str
в соответствии с форматом format
, указанным в документации к функции sprintf().
Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что, например, символ табуляции \t в строке формата соответствует символу пробела во входной строке.
Список параметров
str
-
Обрабатываемая строка (string).
format
-
Формат, в соответствии с которым будет интерпретирована строка
str
, описанный в документации к функции sprintf() со следующими отличиями:- На функцию не влияют настройки локали.
- F, g, G и b не поддерживаются.
- D обозначает десятичное число.
- i обозначает целое число с автоматическим определением системы счисления.
- n обозначает обработанное количество символов на данный момент.
- s остановить чтение на любом пробельном символе.
...
-
Необязательные переменные, передаваемые по ссылке, которым будут присвоены считанные значения.
Возвращаемые значения
Если переданы только эти два аргумента, будет возвращен массив. В противном случае, считанные из строки значения будут присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.
Если ожидается больше подстрок в параметре format
, чем доступно в параметре str
, то будет возвращено значение -1.
Примеры
Пример #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"; ?>