базовый курс

ГРУППА КУРСА

Чтение и запись файлов

Для изучения функций чтения и записи файлов создадим файл myfile.txt, добавим в него небольшой текст и расположим его в той же папке, где находятся скрипты.

Функция file_get_contents() возвращает содержимое файла в виде строки.

file_get_contents (путь к файлу, include path, контекст, смещение, длина)

Параметры:

путь к файлу - абсолютный или относительный путь к файлу

include paht - позволяет осуществлять поиск в папках include path. При этом указывается не путь к файлу, а только имя. Параметру нужно указать значение FILE_USE_INCLUDE_PATH.

контекст - позволяет указать ресурс контекста. Если не нужен, можно установить значение NULL.

смещение - смещение, с которого начинается возвращаемая строка

длина - максимальная длина возвращаемой строки

Обязательным является только первый параметр.

Данную функцию желательно использовать только для чтения всего файла. Параметры позволяют получить и часть файла, но в их работе есть серёзные ограничения. Поэтому для получения части данных лучше применять другие функции. Они будут рассмотрены далее.

Для примера выведем текст из файла myfile.txt, который мы создавали:

+
1
2
<?php
header('Content-type: text/html; charset=utf-8');
3
4
$cont = file_get_contents('myfile.txt');
echo $cont;

Функция file_put_contents() переписывает содержимое файла и заменяет его новыми даннымы. Если файла с таким именем нет, то он создаётся. Функция возвращает количество записанных байт или false при возникновении ошибки.

file_put_contents (путь к файлу, новые данные, флаги, контекст)

Параметры:

путь к файлу - абсолютный или относительный путь к файлу

новые данные - данные, которые записываются в файл. Это может быть строка или массив. Также можно указать поток. Тогда будут записаны данные из этого потока, начиная с текущей позиции

флаги - флаги, определяющие работу функции

контекст - позволяет указать ресурс контекста

Можно установить такие флаги:

FILE_APPEND - существующие данные не перезаписываются. Новые данные добавляются в конец файла.

FILE_USE_INCLUDE_PATH - функция ищет файл в папках include path.

LOCK_EX - пока функция работает с файлом, она запрещает кому-либо другому его записывать.

Если нужно указать несколько флагов, то они разделяются оператором "|".

Запишем в файл myfile.txt новые данные:

5
6
7
8
$text = 'Новый текст в файле ';
file_put_contents('myfile.txt', $text);
$text = 'Добавленный текст';
file_put_contents('myfile.txt', $text, FILE_APPEND);

В строке 6 мы перезаписываем содержимое файла и заменяем его новым текстом, а в строке 8 мы добавляем текст к существующим данным.

Далее в учебнике рассматривается чтение и запись отдельных частей файлов.