ТОП PHP скрипт сегодня: Master QR

Вы Тут:

Главная ›› Книги ›› PHP 5.0 для чайников ›› Функции file_exists(), is_file(), is_writable() и is_readable()

Получение информации о файлах в языке PHP

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

Для начала нужно узнать существует ли файл. Для этого используется функция file_exists(). Она возвращает TRUE, если файл существует, в противном случае - FALSE (листинг 11.12).

Листинг 11.12. Проверка существования файла

<html>
<head>
<title> Проверка существования файла </title>
</head>
<body>
<?php
// проверка существования файла
if (file_exists ("info.txt"))
{
  echo "Файл существует";
}
else
{
  echo "Файл не существует";
}
?>
</body>
</html>

Однако вы можете обмануться, так как любая папка может иметь имя info.txt. Поэтому дополнительно нужно использовать функцию is_file() - листинг 11.13.

Листинг 11.13. Проверка на файл

<html>
<head>
<title> Проверка на файл </title>
</head>
<body>
<?php
if (is_file ("info.txt"))
{
  echo "Это файл";
}
else
{
  echo "Это не файл";
}
?>
</body>
</html>

Иногда полезно бывает знать, можно ли читать или изменять файл. Например, создадим файл с именем file.txt в корневом каталоге нашего Web-cepвepa. Среди его атрибутов поставим флажок Только для чтения - в этом случае мы не сможем открыть его в режиме записи. Если мы не знаем атрибуты файла, то проверку на запись и чтение можно осуществить с помощью функций is_writable() и is_readable() соответственно (листинг 11.14).

Листинг 11.14. Проверка на запись и чтение

<html>
<head>
<title> Проверка на запись и чтение </title>
</head>
<body>
<?php

// проверка на запись
if (is_writable ("info.txt"))
{
  echo "Файл возможно записать";
}
else
{
  echo "Файл невозможно записать";
}

// проверка на чтение
if (is_readable ("info.txt"))
{
  echo "Файл возможно читать";
}
else
{
  echo "Файл невозможно читать";
}
</body>
</html>

В этом примере функция is_writable() возвратит FALSE, а is_readable() - TRUE.