(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