Опубликован: 01.03.2005 | Уровень: для всех | Доступ: свободно
Лекция 9:

Работа с файловой системой

Закрытие соединения с файлом

После выполнения необходимых действий с файлом, будь то чтение или запись данных или что-либо другое, соединение, установленное с этим файлом функцией fopen(), нужно закрыть. Для этого используют функцию fclose(). Синтаксис у нее следующий:

fclose (указатель на файл)

Эта функция возвращает TRUE, если соединение успешно закрыто, и FALSE - в противном случае. Параметр этой функции должен указывать на файл, успешно открытый, например, с помощью функции fopen().

<?php
$h = fopen("my_file.html","w");
fclose($h);
?>
Пример 9.2. Использование функции fclose()

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

Запись данных в файл

Функция fwrite

Для того чтобы записать данные в файл, доступ к которому открыт функцией fopen(), можно использовать функцию fwrite(). Синтаксис у нее следующий:

int fwrite ( указатель на файл, 
             строка [, длина])

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

В результате своей работы функция fwrite() возвращает число записанных байтов или false, в случае ошибки.

Пример 9.3. Пусть в нашей рабочей директории нет файла my_file.html. Создадим его и запишем в него строку текста:

<?php
$h = fopen("my_file.html","w");
$text = "Этот текст запишем в файл.";
if (fwrite($h,$text)) 
  echo "Запись прошла успешно";
else 
  echo "Произошла ошибка при записи данных";
fclose($h);
?>
Пример 9.3. Использование функции fwrite()

В результате работы этого скрипта в браузере мы увидим сообщение о том, что запись прошла успешно, а в файле my_file.html появится строка "Этот текст запишем в файл.". Если бы этот файл существовал до того, как мы выполнили этот скрипт, все находящиеся в нем данные были бы удалены.

Если же мы напишем такой скрипт:

<?php
$h = fopen("my_file.html","a"); 
$add_text = "Добавим текст в файл.";
if(fwrite($h,$add_text,7)) 
  echo "Добавление текста прошло 
    успешно<br>";
else echo "Произошла ошибка при 
   добавлении данных<br>";
fclose($h);
?>

то к строке, уже существующей в файле my_file.html, добавится еще семь символов из строки, содержащейся в переменной $add_text, т.е. слово "Добавим"

Функция fwrite() имеет псевдоним fputs(), используемый таким же образом, что и сама функция.

Далее мы рассмотрим, какие методы чтения данных из файла предлагает язык PHP.

Федор Антонов
Федор Антонов
Оплата и обучение
Сергей Крупко
Сергей Крупко
Как оплатить курс?
Анна Семибратова
Анна Семибратова
Россия, г. Барнаул
Максим Дюмин
Максим Дюмин
Россия, Электросталь