PHP 5 Открытие, чтение и закрытие файлов
Курс по основам языка программирования PHP.
W3Schools на русском языке. Уроки для начинающих
В этой главе вы научитесь открывать, читать и закрывать файл на сервере.
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("Unable to open file!");
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("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
Выполнить пример »
Примечание: После вызова функции fgets()
указатель файла переместился на следующую строку.
PHP Проверка окончания файла - feof()
Функция feof()
проверяет, достигнут ли конец файла - "end-of-file" (EOF).
Функция feof()
полезна для циклического прохождения данных неизвестной длины.
Пример ниже читает файл "webdictionary.txt" построчно, пока не будет достигнут конец файла:
Пример
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Вывести одну строку до конца файла
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
Выполнить прмиер »
PHP Чтение одного символа - fgetc()
Функция fgetc()
используется для чтения одного символа из файла.
В приведенном ниже примере символьный файл "webdictionary.txt" читается до достижения конца файла:
Пример
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Вывести один символ до конца файла
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
Выполнить пример »
Примечание: После вызова функции fgetc()
указатель файла перемещается на следующий символ.
Полный справочник по файловой системе PHP
Для получения более полной информации по файловой системе PHP перейдите на PHP Файловая система. Полный справочник.
Не выкладывайте свой код непосредственно в комментариях, он отображается некорректно. Воспользуйтесь такими сервисами, как jsfiddle.net, codepen.io, liveweave.com, jsbin.com, сохраните код на любом из этих сервисов и в комментариях дайте на него ссылку. Так будет виден и код, и результат.