В общем виде взаимодействие с файлами в PHP сводится к открытию файла, выполнению с ними необходимых действий и закрытию файла. При открытии файла определяется режим дальнейшей с ним работы. Это может быть открытие для чтения, записи, добавления данных. Есть так же режимы открытия файла, совмещающие в себе одновременно и чтение и запись.
Существует множество возможностей выполнять чтение из файлов – можно получить данные в разной форме – построчное считывание, получение массива строк и так далее.
Для создания файла, необходимо выполнить открытие файла в режиме записи. Открытие файла выполняется функцией fopen. Первым параметром этой функции указывает путь к файлу. Второй параметр указывает на режим открытия файл. Для создания файла нужно указать режим записи файла - "w".
$f = fopen("myfile.txt", "w");
Если файл с таким именем уже есть, то режим записи позволит создать новый пустой файл на месте существующего, удалив все его данные.
Еще существует параметр "w+", позволяющий, открывать одновременно для чтения и записи. При этом, если файл с таким именем уже существовал, данные в нем сотрутся.
При выполнении операции открытия, функция вернет значение – дескриптора файла – специальной файловой переменная, которая будет указывать последующим функциям с каким именно файлом выполнять свои действия.
Для добавления новых данных в открытый в режиме записи файл используется функция fwrite. Первым параметром указывается дескриптор файла. Затем строка, которую нужно записать в файл. При необходимости, третьим параметром можно ограничить количество записываемых символов.
fwrite($f, "Мой текст для записи в файл.");
После записи всех строк, его необходимо закрыть. Для этого применяется функция fclose. Единственным параметром для нее служит дескриптор файла.
fclose($f);
В итоге, код создания и сохранения файла выглядит следующим образом:
$f = fopen("myfile.txt", "w");
fwrite($f, "Первая строка.\r\n");
...
fwrite($f, "Последняя строка.\r\n");
fclose($f);
Символы "\r\n" означают символ конца строки. Если не добавлять, все строки в записанном файле объединятся в одну строку.
Для того, чтобы дописать какую-либо информацию в уже созданный файл, его нужно открыть в режиме записи, но с сохранением имеющейся информации. Т.е. файл будет открыт так же для записи, но при записи в такой файл, они будут добавляться в его конец.
$f = fopen("myfile.txt", "a"); "// Параметр "a" указывает открыть в режиме добавления"
fwrite($f, "Новая строка\r\n");
fclose($f);
Если же файла с указанным именем не существует, файл будет создан и все данные будут записаны в него.
Еще есть режим "a+", открывающий файл для чтения и записи, с переходом в конец файла.
Для чтения из файла, функции fopen назначается параметр "r", что означает, что файл будет открыт только для чтения. Чтение из файла выполняет функция fgets. Первым параметром указывается дескриптор файла. Второй, необязательный, параметр определяет размер считываемой строки. Если второй параметр не указывать, текущая строка будет считана до символа конца строки.
$f = fopen("myfile.txt", "r"); // Параметр "r" указывает открыть в режиме чтения
$s = fgets($f);
echo $s;
fclose($f);
Режим "r+" открывает файл для чтения и записи.
Для считывания всех строк из файла, можно воспользоваться циклом, в котором будет считываться по одной строке до конца файла:
$f = fopen("myfile.txt", "r");
while (!feof($f)){
$s = fgets($f);
echo $s;
}
fclose($f);
Функция feof используется в условии цикла для определения конца файла и завершения цикла считывания.
Кроме описанного метода получения данных из файла, PHP имеет еще множество различных функций. Иногда проще получить стразу все содержимое файла (функция readfile) или загрузить все строки в массив (функция file), и работать уже с ним. Для таких целей не придется открывать файл для чтения и закрывать его. Все эти действия будут выполнены самой функцией.
readfile("myfile.txt");
$mas = file("myfile.txt");
foreach ($mas as $m)
echo $m;
С помощью функции fgetc можно считывать содержимое файла посимвольно:
$f = fopen("myfile.txt", "r");
while (!feof($f)){
$s = fgetc($f);
echo $s;
}
fclose($f);
Удаление файла выполняется функцией unlink. В параметре указывается путь к удаляемому файлу.
unlink("myfile.txt");
Иногда, прежде чем, выполнять какие-либо действия с файлом необходимо проверить, существует ли он. Для этого используется функция file_exists. В параметре указывается путь к файлу.
if (file_exists("myfile.txt"))
echo "Такой файл есть.";
else
echo "Файла с таким именем нет.";
Проверка правильности email на PHP
Функция mkdir в PHP, описание и примеры
Функция pathinfo в PHP, описание и примеры
В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.