PHP Файл Открыть/Читать/Закрыть
В этой главе вы научитесь открывать, читать и закрывать файл на сервере.
PHP Открыть файл - fopen()
Лучший способ открыть файлы - использовать функцию fopen(). Эта функция предоставляет больше возможностей, чем функция readfile().
Мы будем использовать текстовый файл "webdictionary.txt" во время уроков:
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
Первый параметр fopen() содержит имя файла, который нужно открыть, а второй параметр указывает, в каком режиме файл должен быть открыт. В следующем примере также генерируется сообщение, если функция fopen() не может открыть указанный файл:
Пример
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Невозможно открыть файл!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>
Выполнить пример »
Примечание: Функции fread() и fclose() будут описаны ниже.
Файл может быть открыт в одном из следующих режимов:
| Режим | Описание |
|---|---|
| r | Открывает файл только для чтения. Указатель файла начинается с начала файла |
| w | Открывает файл только для записи. Удаляет содержимое файла или создает новый файл, если он не существует. Указатель файла начинается с начала файла |
| a | Открывает файл только для записи. Существующие данные в файле сохраняются. Указатель файла начинается с конца файла. Создает новый файл, если файл не существует |
| x | Создает новый файл только для записи. Возвращает FALSE и ошибку, если файл уже существует |
| r+ | Открывает файл для чтения/записи. Указатель файла начинается с начала файла |
| w+ | Открывает файл для чтения/записи. Удаляет содержимое файла или создает новый файл, если он не существует. Указатель файла начинается с начала файла |
| a+ | Открывает файл для чтения/записи. Существующие данные в файле сохраняются. Указатель файла начинается с конца файла. Создает новый файл, если файл не существует |
| x+ | Создает новый файл для чтения/записи. Возвращает FALSE и ошибку, если файл уже существует |
PHP Читать файл - fread()
Функция fread() читает из открытого файла.
Первый параметр fread() содержит имя файла для чтения, а второй параметр указывает максимальное количество байтов для чтения.
Следующий PHP код читает файл "webdictionary.txt" до конца:
fread($myfile,filesize("webdictionary.txt"));
PHP Закрыть файл - fclose()
Функция fclose() используется для закрытия открытого файла.
Хорошей практикой программирования является закрытие всех файлов после того, как вы закончили работу с ними. Вы же не хотите, чтобы открытый файл продолжал работать на вашем сервере и занимать ресурсы!
Функция fclose() требует имя файла (или переменной, содержащей имя файла), которую мы хотим закрыть:
<?php
$myfile = fopen("webdictionary.txt", "r");
// некоторый код, который будет выполнен....
fclose($myfile);
?>
PHP Читать одну строку - fgets()
Функция fgets() используется для чтения одной строки из файла.
В приведенном ниже примере выводится первая строка файла "webdictionary.txt":
Пример
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Невозможно открыть файл!");
echo fgets($myfile);
fclose($myfile);
?>
Выполнить пример »
Примечание: После вызова функции fgets() указатель файла переместился на следующую строку.
PHP Проверить "end-of-file" (конец файла) - feof()
Функция feof() проверяет, был ли достигнут "end-of-file" (EOF) - конец файла.
Функция feof() полезна для циклического прохождения данных неизвестной длины.
Пример ниже читает файл "webdictionary.txt" построчно, пока не будет достигнут конец файла:
Пример
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Невозможно открыть файл!");
// Вывести одну строку до конца файла
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
Выполнить пример »
PHP Читать одиночный символ - fgetc()
Функция fgetc() используется для чтения одного символа из файла.
В приведенном ниже примере файл "webdictionary.txt" читается символ за символом, до достижения конца файла:
Пример
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Невозможно открыть файл!");
// Вывести один символ до конца файла
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
Выполнить пример »
Примечание: После вызова функции fgetc() указатель файла перемещается на следующий символ.
Полный справочник по файловой системе PHP
Для более полного ознакомления с функциями файловой системы, перейдите к полному PHP Справочнику файловой системы на нашем сайте W3Schools на русском.

