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