Для работы с файлом необходимо его предварительно открыть. Это операция выполняется с помощью функции
int fopen(string filename, string mode)
Функция возвращает дескриптор файла filename. Файловый дескриптор определяется как целое число – указатель на область памяти, в которой хранятся различные параметры, связанные с файлом.
Если filename начинается не с nttp:, ftp:, PHP:, то открывается файл в файловой системе локального компьютера.
Параметр mode задает режим открытия файла и тип файла.
Режим открытия файла может принимать следующие значения:
· r – открыть только на чтение и установить указатель в начало файла;
· r+ – открыть на чтение и запись и установить указатель в начало файла;
· w – открыть только на запись и установить указатель в начало файла (если файл не существует – создать его, иначе установить размер файла в ноль);
· w+ – открыть на чтение и запись и установить указатель в начало файла (если файл не существует – создать его, иначе установить размер файла в ноль);
· a – открыть только на запись и установить указатель в конец файла (если файл не существует – создать его);
|
|
· a+ – открыть на чтение и запись и установить указатель в конец файла (если файл не существует – создать его).
После режима открытия файла можно задать тип файла, который имеет либо значение t – текстовый файл (это значение по умолчанию), либо значение b – двоичный файл.
https:// сервер [: порт ] / файл,
то открывается HTTP-соединение и программа получает доступ к указанному файлу в режиме только для чтения.
Если имя файла имеет вид
ftp:// [ пользователь: пароль @] сервер / файл,
то открывается FTP-соединение к указанному серверу и программа получает доступ к данному файлу. При доступе к анонимному серверу поле пользователь: пароль можно опустить. В режиме FTP можно открыть файл как на чтение, так и на запись (но не одновременно).
Для доступа к файлам стандартного входа (stdin), выхода (stdout) и файла ошибок (stderr) можно обращаться к этим файлам по именам: php://stdin, php://stdout, php://stderr.
При открытии файла можно использовать конструкцию
or die([string status])
например,
$f=fopen("/home/user/file.txt", "r")) or die("Error!");
В этом случае, если при открытии файла произойдет ошибка, будет выведено сообщение "Error!" и выполнение программы прекратится.
Функция
int set_file_buffer(int fp, int buffer)
устанавливает размер буфера для открытого файла. Если значение buffer равно нулю, буферизация отключается. Если операция выполнена удачно, функция возвращает значение 0, иначе – ненулевое значение.
После окончания операций с открытым файлом он закрывается с помощью функции
bool fclose(int fp)
Параметр fp является файловым дескриптором открытого ранее с помощью функции fopen()файла. При успешном закрытии возвращается значение true, в противном случае возвращает false. Функции fclose() автоматически вызываются для всех открытых файлов при завершении выполнения всех фрагментов программ в странице PHP.