(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
fscanf — Обрабатывает данные из файла в соответствии с форматом
Функция fscanf() похожа на
sscanf(), но берёт данные для обработки из файла,
связанного с stream
, и интерпретирует их
согласно формату format
.
Любой пробельный символ в строке формата эквивалентен любому
пробельному символу во входящем потоке. Это означает, что даже табуляция
(\t
) в строке формата может быть сопоставлена
одному символу пробела во входящем потоке данных.
Каждый вызов fscanf() читает одну строку из файла.
stream
Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().
format
Интерпретируемый формат для параметра string
,
который описан в документации функции sprintf()
со следующими отличиями:
F
, g
, G
и
b
.
D
обозначает десятичное число.
i
обозначает целое число с определением системы счисления.
n
обозначает количество символов, обработанных на данный момент.
s
останавливает чтение на любом символе пробела.
*
вместо argnum$
подавляет
присвоение данной спецификации преобразования.
vars
Необязательные присваиваемые значения.
Если в функцию переданы только два аргумента, обработанные значения будут возвращены в виде массива. В ином случае, если были переданы необязательные аргументы, функция вернёт количество присвоенных значений. Необязательные аргументы должны быть переданы по ссылке.
Если в format
ожидается больше подстрок,
чем доступно в string
, будет возвращён null
.
В случае возникновения других ошибок будет возвращено false
.
Пример #1 Пример использования функции fscanf()
<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
list ($name, $profession, $countrycode) = $userinfo;
//... совершаем какие-либо действия над значениями
}
fclose($handle);
?>
Пример #2 Содержимое файла users.txt
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it