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() - Возвращает отформатированную строку