fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fscanfОбрабатывает данные из файла в соответствии с форматом

Описание

fscanf(resource $stream, string $format, mixed &...$vars): array|int|false|null

Функция 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

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку