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 на русском.