Модуль 12. Работа с файлами Flashcards
Функция file($fileToRead)
Функция file позволяет получить содержимое файла, при этом эта функция возвращает массив, где каждый
элемент - это отдельная строка такого файла. символ переноса строки
также сохраняется. С помощью функции trim его можно убрать из строки.
Функция file_get_contents($fileToRead);
функция для получения содержимого всего файла. В отличие от предыдущей функции, эта возвращает содержимое в виде строки.
функция readfile($fileToRead)
функция считывает содержимое файла и сразу же его
выводит
Функция file_put_contents($fileToWrite, $content);
Функция для записи данных в файл. У этой функции четыре параметра.
Первый - абсолютный путь к файлу, в который нужно осуществить запись. Второй - строка, которую нужно
записать в файл. Третий - это дополнительные параметры для записи. Четвертый - используется для записи в другой
поток, мы его не будем использовать.
Если третий параметр не указан то файл будет полностью перезаписан, параметр указывается в виде константы например
FILE_APPEND
Функции проверки файла
С помощью этих функций можно проверить, существует ли файл, является он файлом или директорией
is_dir($file)
is_file($file)
file_exists($file)
Функция для получения информации о файле ?
функция pathinfo($file) возвращает информацию о файле в виде ассоциативного массива
[dirname] => /dir/to/file
[basename] => example.txt
[extension] => txt
[filename] => example
Функция копирования файла
С помощью функции copy($file, $secondFile); можно скопировать файл, т.е. создать новый файл с тем же содержимым, что и
исходный файл.
Перемещения файла в директории
Функция rename($secondFile, $thirdFile); позволяет переместить файл на новое место.
Как удалить файл
Для удаления файла используется функция unlink($file)
получить родительскую директорию у файла
Получить путь к родительской директории сожно функцией dirname($baseDir)
Во втором параметре можно передать уровень родителькой директории
фукнция scandir($baseDir)
представляет собой простой способ получить названия всех файлов и директорий по
указанному пути, т.е. считывает содержимое директории.
Поток
Поэтапное чтение содержимого файла. Сначала создается поток и потом происходит работа с файлами
Создание потока
Для создания потока используется функция fopen($fileToRead, ‘r’);
Эта функция принимает четыре параметры, мы рассмотрим только два из них, первый - абсолютный путь к
файлу, второй модификатор, который определяет для каких действий будет открыт файл.
$fileToRead = $baseDir . DIRECTORY_SEPARATOR . ‘example.txt’;
$stream = fopen($fileToRead, ‘r’);
Модификаторы при создании потока
‘r’ Открывает файл только для чтения; помещает указатель в начало файла.
‘r+’ Открывает файл для чтения и записи; помещает указатель в начало файла.
‘w’ Открывает файл только для записи; в противном случае ведёт себя так же, как и ‘w+’.
‘w+’ Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если
файл не существует - пытается его создать.
‘a’ Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его
создать. В данном режиме функция fseek() не применима, записи всегда добавляются в конец.
‘a+’ Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его
создать. В данном режиме функция fseek() влияет только на позицию чтения, записи всегда добавляются в конец.
‘x’ Создает и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов
fopen() закончится неудачей, вернёт false и выдаст ошибку уровня E_WARNING. Если файл не существует,
попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного
вызова open(2).
‘x+’Создает и открывает для чтения и записи; в остальном имеет то же поведение, что и ‘x’.
Чтение файла в потоке по байтам
функция fread позволяет считать из потока
указанное число байт.
$content = fread($stream, filesize($fileToRead));
При чтении файла указатель будет смещаться на последнее место с которого было чтение