fscanf()
Что представляет собой функция fscanf()?
Функция fscanf() — это встроенная функция PHP, которая считывает данные из файла в соответствии с указанным форматом. Она изменяет переданные переменные по ссылке и возвращает количество успешно прочитанных полей или false в случае ошибки.
Ниже приведён базовый синтаксис функции fscanf():
Синтаксис fscanf() в PHP
fscanf(file, format, ...);Где file — это указатель на файл для чтения, format — строка, определяющая формат считываемых данных, а ... обозначает одну или несколько переменных для хранения прочитанных данных.
Как использовать функцию fscanf()?
Использование функции fscanf() довольно просто. Следуйте приведённым ниже шагам:
- Откройте файл, из которого нужно читать, с помощью функции
fopen()в режиме только для чтения и убедитесь, что она вернула корректный ресурс. - Используйте цикл, который проверяет возвращаемое значение
fscanf(), поскольку она считывает токены на основе строки формата, а не фиксированных строк, и может занимать несколько строк или останавливаться на пробельных символах. - Вызовите
fscanf()внутри цикла, передав указатель на файл, строку формата и предварительно инициализированные переменные. Проверяйте возвращаемое значение для обработки ошибок или неожиданного конца файла. - Закройте файл с помощью функции
fclose().
Ниже приведён пример кода, демонстрирующий использование функции fscanf():
Как использовать функцию fscanf()?
<?php
$filename = 'data.txt';
$file = fopen($filename, 'r');
if ($file === false) {
die("Error: Could not open file.");
}
while (($count = fscanf($file, "%s %s %d %f", $first_name, $last_name, $age, $salary)) === 4) {
echo "Name: $first_name $last_name\nAge: $age\nSalary: $salary\n";
}
fclose($file);
?>В этом примере мы открываем файл data.txt с помощью fopen() и проверяем, что он вернул корректный ресурс. Затем мы используем цикл while, который напрямую проверяет возвращаемое значение, предотвращая бесконечные циклы, если fscanf() встретит неполную строку или конец файла (EOF). fscanf() изменяет переменные по ссылке и возвращает количество успешно присвоенных полей; цикл продолжается только тогда, когда прочитаны все четыре поля. К распространённым спецификаторам формата относятся %s (строка), %d (целое число), %f (число с плавающей запятой) и %c (один символ). В завершение мы выводим данные и закрываем файл с помощью fclose().
Связанные функции Для аналогичных задач рассмотрите sscanf() для разбора отформатированных строк вместо файлов или fgetcsv() для построчного чтения CSV-файлов.
Заключение
Функция fscanf() — это полезный инструмент в PHP для чтения отформатированных данных из файлов. Следуя шагам, описанным в этом руководстве, вы сможете легко использовать функцию fscanf() в своих PHP-проектах для чтения отформатированных данных из файлов.
Практика
Какова функция fscanf() в PHP?