Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5. Работа с файлами.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
84.48 Кб
Скачать

Тема 5. Работа с файлами

Web-приложения на РНР, работающие с различными данными, в основном используют две возможности для хранения информации: реляционные базы данных и локальную файловую систему.

Система с базой данных более мощная, чем база файлов. Файлы полезны для хранения простых данных, например, информации о настройках или для различных неструктурированных данных.

Данные лучше хранить в файлах, потому что не нужно будет учиться работать с базами данных (это непросто), в большинстве своем провайдеры берут дополнительную плату за доступ к базам данных, в то время как доступ к файлам - бесплатный.

В большинстве случаев при работе с файлами состоит из следующей последовательности действий:

  1. открытие файла,

  2. чтение данных из файла или запись данных в файл,

  3. закрытие файла.

1. Открытие файла

Открытие файлов выполняется с помощью функции fopen().

Синтаксис:

fopen( string filename, string mode [, int use_include_path])

Первый аргумент filename — относительный или абсолютный путь к файлу. Второй аргумент mode задает режим работы с открываемым файлом.

Таблица. Значения аргумент mode.

Аргумент

Значение аргумента

r

Открыть файл только для чтения, поместить указатель в начало файла

r+

Открыть файл для чтения и записи, поместить указатель в начало файла

w

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

w+

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

a

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

a+

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

Можно использовать необязательный третий параметр и установить в него значение «1», если нужно найти файл также и в каталоге use_include_path.

В случае удачного открытия файла функция fopen() возвращает дескриптор файла, в случае неудачи — false.

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

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

2. Закрытие файла

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

Синтаксис:

fclose( int fd)

Аргумент fd представляет собой дескриптор, который необходимо закрыть.

Листинг 5.1. Создание файла data

<html>

<head><title>Создание файла data</title></head>

<body>

<?php

$fd=fopen( "data.txt", "w");

fclose( $fd);

?>

</body>

</html>

После выполнения скрипта в директории, где он расположен, должен появиться файл с именем data.txt.