(краткое содержание)
Открытие файла
Перед тем как начать работу с файлом, его надо открыть (или установить с
ним соединение, если речь идет о файле, размещенном на другом компьютере, что
для PHP равносильно). Функция открытия файла fopen() имеет следующий
синтаксис:
int fopen(string $file, string $mode [, bool $use_include = false, resource $context])
Функция содержит следующие параметры:
1) $file – имя файла, содержащее полный абсолютный или относительный путь
к нему в случае, если файл располагается не в одной папке с файлом, содержащим
программный код его использования;
2) $mode – режим открытия файла, указывающий на ряд параметров работы с
файлом. Режимы открытия файла содержат следующие параметры:
Таблица 34.1. Режимы $mode при работе с файлом через функцию fopen()
Очистка Создание Ошибка
Режим Чтение Запись Указатель
файла файла наличия
r Да Нет В начале Нет Нет Нет
r+ Да Да В начале Нет Нет Нет
w Нет Да В начале Да Да Нет
w+ Да Да В начале Да Да Нет
a Нет Да В конце Нет Да Нет
a+ Да Да В конце Нет Да Нет
x Нет Да В начале Нет Да Да
x+ Да Да В начале Нет Да Да
c Нет Да В начале Нет Да Нет
c+ Да Да В начале Нет Да Нет
1
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)
Закрытие файла
В PHP есть удобный инструмент «сбора мусора», который через
определенные промежутки времени производит сбор и очистку неиспользуемых
2
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)
переменных, соединений, файлов и др. При этом стоит помнить, что происходит
это не часто и может сильно нагрузить память.
И все же не стоит ориентироваться только на автоматические возможности
PHP, особенно при работе с файлами и сетевыми соединениями.
Для закрытия файла и сетевого соединения с файлом определена функция
fclose():
int fclose(int $fp)
Закрывает файл, предварительно открытый функцией fopen(). В случае, если
закрыть файл не удалось, возвращает false.
Данная функция имеет более широкий спектр возможностей и может
закрывать соединения для других функций, не рассматриваемых в рамках этого
курса.
3
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)
Обрезание файла
Для урезания файла до определенного объема при условии превышения его
допустимого объема, используется функция ftruncate():
bool ftruncate(int $f, int $newsize)
Файл $f обрезается до размера $newsize.
Настоятельно рекомендуется после функции ftruncate() использовать функцию
fseek() для перемещения указателя в существующее положение в новом размере
файла, иначе может произойти заполнение пустого пространства байтами при
последующем обращении к файлу.
Обработка файлов
Для обработки самих файлов предусмотрен ряд функций, среди которых
выделяются функции копирования, переименования и удаления файлов.
Рассмотрим каждую из них:
bool copy(string $src, string $dst)
Функция копирует файл $src в файл $dst. В случае, если файл $dst уже
существовал на момент запуска функции, происходит его полная перезапись.
bool rename(string $oldn, string $newn)
Функция производит переименование (или перемещение, что по сути является
одним и тем же) файла $oldn в файл $newn. Если файл $newn уже существует –
функция выдаст ошибку.
bool unlink(string $filename)
Функция производит удаление файла $filename. В случае неудачи возвращает
false. В случае с сетевым соединением производит разрыв соединения.
Все перечисленные функции содержат один необязательный параметр
$context, не указанный в данном разделе. Этот параметр определяет контекст
поддержки потоков, не рассматриваемых в данном курсе.
4
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)
5
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)
//Закрываем файлы
fclose($frfw);
fclose($file_source);
//-----------------------------------------------------
//Закрываем файлы
fclose($fgfp);
fclose($file_source);
//-----------------------------------------------------
6
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)
7
Лекции курса PHP7 +MySQL с нуля
(краткое содержание)