Получение информации о файлах в языке 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.