Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

26.11. PHP: Разные функции работы с файлами

Изучим следующие функции:

• chrnod(),

• fputs(),

• rewind(),

• ftell().

Если нужно изменить режим файла, используют функцию chmod(), которая позволяет менятьрежим на необходимый в данный момент. Ее синтаксис:

int chmod (string filename, int mode)

Изменяет режим файла, указанного в параметре filename, на режим, указанный параметром mode. Заметим, что mode не присваивает автоматически восьмеричное значение, для этого необходимо воспользоваться префиксом с нулем. Например:

chmod("/dir1/dir2/anyfile", 755); // десятичный, неверный режим

chmod("/dir1/dir2/anyfile", "u+rwx,go+rx"); // строка, неверный режим

chmod("/dir1/dir2/anyfile", 0755); // восьмеричный, верный режим

При правильном выполнении функция возвращает значение true, в противном случае — false.


ВНИМАНИЕ

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


Функция работает в РНР 3 и РНР 4.

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

int fputs (int fp, string str[, int length])

На месте параметра str указывается строка, вносимая в fp — файловый указатель, определяется с учетом функции Параметр length отвечает за длину символов, которые можно вносить в указанный файл. Если ваша строка состоит из 10 символов, a length — 5, то в ваш файл с учетом размещения и, например, указателя будет внесено только 5 первых символов, остальные будут обрезаны. Параметр length опционален, т. е. при его отсутствии записывается вся строка str.

Рассмотрим пример работы функции fputs():

<?php

$fp = fopen("Z:\\home\\localhost\\www\\newname.txt", "w");

fputs($fp, "Работа над ошибками закончена!", 15);

fclose($fp);

readfile("Z:\\home\\localhost\\www\\newname.txt");

?>

Пример показывает, как работает функция при указании длины вносимой в файл newname.txt строки. Из всей приведенной строки в файл newname.txt будет внесено только 15 символов. На экране браузера будет выведено:

Работа над ошиб

Ровно символов с учетом пробелов.

Теперь рассмотрим пример работы функции fputs() без указания параметра length:

<?php

$fp = fopen ("Z:\\home\\localhost\\www\\newname.txt", "w");

fputs($fp, "Работа над ошибками закончена!");

fclose($fp);

readfile("Z:\\home\\localhost\\www\\newname.txt");

?>

В данном случае в окно браузера будет

Работа над ошибками закончена!

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

Функция fputs() используется в РНР 3 и РНР 4.

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

int rewind (int fp)

Функция rewind() устанавливает файловый указатель, заданный вместо параметра fp, на начало файла. При возникновении ошибки возвращается 0.

Файловый указатель должен быть действующим и указывать на файл, успешно открытый функцией fopen(). Например:

<?php

$fp = fopen("dir/dir1/dir2/yourfile", "w");

rewind($fp);

fclose($fp);

?>

Функция ftell() возвращает место файлового указателя, т. е. позицию указателя, установленного при помощи функции fopen(). Синтаксис функции ftell():

int ftell(int fp)

Функция ftell() возвращает позицию указателя в файле, на который ссылается файловый указатель, и устанавливает его на месте параметра fp. Таким образом, происходит смещение в потоке файла.

При возникновении ошибки функция ftell() возвращает false.

Файловый указатель должен быть действующим и указывать на файл, успешно открытый fopen() или popen().

Описанные функции ftell() и rewind() используются в РНР 3 и РНР 4.

<< Предыдущий параграф Следующий параграф >>
Оглавление