Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
open(). 
Если файл открыт в режиме бинарного чтения/записи, то PHP совершенно все равно, 

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

колько не исказится. Правда, при чтении текстового файла в Windows вы получите 
символы \r\n в конце строки вместо одного \n, если не предпримете некоторых 
дей- 
ствий, а откроете файл, как об этом написано в документации. Об этом речь ниже. 

Открытие файла 
Как и в Си, работа с файлами в PHP разделяется на три этапа. Сначала файл 
откры- 
вается в нужном режиме, при этом возвращается некое целое число, служащее иден- 

тификатором открытого файла (дескриптор файла). Затем настает очередь команд 
работы с файлом (чтение или запись, или и то и другое), причем они "привязаны" 
уже 
к дескриптору файла, а не к его имени. После этого файл лучше всего закрыть 
(хотя 
это можно и не делать, поскольку PHP автоматически закрывает все файлы по 
завер- 
шении сценария). 
int fopen(string $filename, string $mode, bool $use_include_path=false) 
Открывает файл с именем $filename в режиме $mode и возвращает дескриптор от- 
крытого файла. Если операция "провалилась", то, как это принято, fopen() 
возвра- 
щает false. Впрочем, мы можем не особо беспокоиться, проверяя выходное значе-

Часть IV. Стандартные функции PHP 246 
ние на ложность — вполне подойдет и проверка на ноль, потому что дескриптор 0 в 

системе соответствует стандартному потоку ввода, а он, очевидно, никогда не 
будет 
открыт функцией fopen() (во всяком случае, пока не будет закрыт нулевой 
дескрип- 
тор, а это делается крайне редко). Необязательный параметр $use_include_path 
говорит PHP о том, что, если задано относительное имя файла, его следует искать 

также и в списке путей, используемом инструкциями include и require. Обычно 
этот параметр не используют. 
Параметр $mode может принимать следующие значения: 
r r — файл открывается только для чтения. Если файла не существует, вызов реги- 

стрирует ошибку. После удачного открытия указатель файла устанавливается на 
его первый байт, т. е. на начало; 
r r+ — файл открывается одновременно на чтение и запись. Указатель текущей 
позиции устанавливается на его первый байт. Как и для режима r, если файла не 
существует, возвращается false. Следует отметить, что если в момент записи 
указатель файла установлен где-то в середине файла, то данные запишутся прямо 
поверх уже имеющихся, а не "раздвинут" их, при необходимости увеличив размер 
файла. Будьте внимательны; 
r w — создает новый пустой файл. Если на момент вызова уже был файл с таким 
именем, то он предварительно уничтожается. В случае неверно заданного имени 
файла вызов, как нетрудно догадаться, "проваливается"; 
r w+ — аналогичен r+, но если файла изначально не существовало, создает его. 
По- 
сле этого с файлом можно работать как в режиме чтения, так и записи. Если файл 
существовал до момента вызова, его содержимое удаляется; 
r a — открывает существующий файл в режиме записи, и при этом сдвигает указа- 
тель текущей позиции за последний байт файла. Этот режим полезен, если требу- 
ется что-то дописать в конец уже имеющегося файла. Как водится, вызов неуспе- 
шен в случае отсутствия файла; 
r a+ — открывает файл в режиме чтения и записи, указатель файла устанавливается 

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

лезен, если вам нужно что-то дописать в файл (например, в журнал), но вы не 
знаете, создан ли уже такой файл; 
Но это еще не полное описание параметра $mode. Дело в том, что в конце любой из 

строк r, w, a, r+, w+ и a+ может находиться еще один необязательный символ — b 
или t. Если указан b (или не указан вообще никакой), то файл открывается в 
режиме 
бинарного чтения/записи. Если же это t, то для файла устанавливается режим 
транс- 
ляции символа перевода строки, т. е. он воспринимается как текстовый. 

Глава 15. Р
 
<<-[Весь Текст]
Страница: из 287
 <<-