52568.fb2 Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 64

Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 64

$filename = 'c:/users/files/my_file.html';

if (is_readable($filename)) {

print "Файл <b>$filename</b> существует

и доступен для чтения";

} else {

print "Файл <b>$filename</b>

НЕ существует или

НЕ доступен для чтения";

}

?>

Удаление файла

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

bool unlink ( имя_файла)

Данная функция удаляет файл, имеющий имя имя_файла, возвращает TRUE в случае успеха этой операции и FALSE - в случае ошибки. Чтобы удалить файл, нужно тоже иметь соответствующие права доступа к нему (например, доступа только на чтение для удаления файла недостаточно).

<?php

$filename = 'c:/users/files/my_file.html';

unlink($filename);

// удаляем файл с именем

// c:/users/files/my_file.html

?>

Загрузка файла на сервер

Теперь решим более сложную и часто возникающую на практике задачу загрузки файла на сервер. Первое, что нужно сделать, чтобы загрузить файл на сервер, это создать html-форму. Для того чтобы с помощью этой формы можно было загружать файлы, она должна содержать атрибут enctype в теге form со значением multipart/form-data, а также элемент input типа file.

Пример 9.11.

<form enctype="multipart/form-data"

action="parse.php" method="post">

<input type="hidden" name="MAX_FILE_SIZE"

value="30000" />

Загрузить файл: <input type="file"

name="myfile" /><br>

<input type="submit"

value="Отправить файл" />

</form>

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

Рис. 9.1.  Пример формы для загрузки файла на сервер

Теперь нужно написать скрипт, который будет обрабатывать полученный файл.

Вся информация о загруженном на сервер файле содержится в глобальном массиве $_FILES. Этот массив появился начиная с PHP 4.1.0. Если включена директива register_globals, то значения переданных переменных доступны просто по их именам.

Если мы загрузили с компьютера-клиента файл с именем critics.htm  размером 15136 байт, то скрипт с единственной командой print_r($_FILES); выведет на экран следующее:

Array ( [myfile] =>

Array ( [name] => critics.htm

[type] => text/html

[tmp_name] => C:\WINDOWS\TEMP\php49F.tmp

[error] => 0

[size] => 15136

)

)

Вообще говоря, массив $_FILES всегда имеет следующие элементы:

- $_FILES['myfile']['name'] - имя, которое имел файл на машине клиента.

- $_FILES['myfile']['type'] - mime-тип отправленного файла, если браузер предоставил эту информацию. В нашем примере это text/html.

- $_FILES['myfile']['size'] - размер загруженного файла в байтах.

- $_FILES['myfile']['tmp_name'] - временное имя файла, под которым он был сохранен на сервере.

- $_FILES['myfile']['error'] - код ошибки, появившейся при загрузке.