(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