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

26.10. PHP: Установка времени модификации файла

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

Для чего это используется? Например, вы написали скрипт, который проверяет лог-файл на изменения или же просто периодически заносит новые сведения. Обращение к данному файлу осуществляется посредством изменяемого времени, т. е. возникает необходимость, чтобы каждый день происходило изменение времени модификации, иначе может возникнуть какая-либо ошибка. Когда произвести модификацию физически невозможно из-за некоторых существенных факторов, появляется необходимость проделать это программно. В таком случае используют функцию установления времени модификации. Ее синтаксис:

int touch(string filename [, int time])

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

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

Функция touch() возвращает true при успешном выполнении, при возникновении какой-либо ошибки функция возвратит false.

Рассмотрим пример:

<?php

if (!touch ($path)) {

    print "Ошибка, невозможно изменить время модификации файла".

    basename($path);

}

else {

    print "Время модификации файла ". basename ($path) ," было изменено <br>\n";

}

?>

В процессе выполнения приведенного примера дата и время модификации файла будут изменены на текущее, так как в нашем случае не указано время, на которое необходимо изменять. Проверить правильность изменения времени можно при помощи функции filemtime(). В результате работы данного скрипта функция touch приведенная в операторе условия, будет возвращать значение true, что в свою очередь приведет к выполнению следующего блока программы. В итоге на экран браузера будет выведено:

Время модификации файла newname.txt было изменено на

Обратите внимание: теперь, когда мы знаем принцип работы функции basename() (см. п. 26.1), мы без проблем можем ее применять для вывода только файла, без указания конкретного пути до этого файла.

Функция модификации времени файла touch() работает в РНР 3 и РНР 4.

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