ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.05.2024
Просмотров: 50
Скачиваний: 0
}
?>
Приклад 9.9. Використовування функції is_readable()
5 Видалення файлу
Останнє, що ми хочемо вивчити з дій над файлами, - це видалення файлів. Для того, щоб видалити файл за допомогою мови PHP, потрібно скористатися функцією unlink(). Синтаксис цієї функції можна описати таким чином:
bool unlink ( ім’я_файлу)
Дана функція видаляє файл, що має ім'я ім’я_файлу, повертає TRUE у разі успіху цієї операції і FALSE - у разі помилки. Щоб видалити файл, потрібно теж мати відповідні права доступу до нього (наприклад, доступу тільки на читання для видалення файлу недостатньо).
<?php
$filename = 'c:/users/files/my_file.html';
unlink($filename);
// видаляємо файл з ім'ям с:/users/files/my_file.html
?>
Приклад 9.10. Використовування функції unlink()
6 Завантаження файлу на сервер
Тепер вирішимо складнішу і часто виникаючу на практиці задачу завантаження файлу на сервер. Перше, що потрібно зробити, щоб завантажити файл на сервер, це створити 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.11. Форма для завантаження файлу на сервер
Помітимо, що ми додали у формі приховане поле, яке містить в собі максимальний допустимий розмір завантажуваного файлу в байтах. При спробі завантажити файл, розмір якого більше вказаного в цьому полі значення, буде зафіксована помилка. В браузері створена нами форма виглядатиме як рядок для введення тексту з додатковою кнопкою для вибору файлу з локального диска (рис 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] => С:\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'] - код помилки, що з'явилася при завантаженні.
Тут 'myfile' - це ім'я елемента форми, за допомогою якого була проведено завантаження файлу на сервер. Тобто воно може бути іншим, якщо елемент форми назвати інакше. Але інші ключі ( name, type і т. д.) залишаються незмінними для будь-якої форми.
Якщо register_globals=On, то доступні також додаткові змінні, такі як $myfile_name, яка еквівалентна $_FILES['myfile']['name'], і т.п.
Помилок при завантаженні в PHP виділяють п'ять типів і відповідно $_FILES['myfile']['error'] може мати п'ять значень:
0 - помилки не відбулося, файл завантажений успішно
1 - завантажуваний файл перевищує розмір, встановлений директивою upload_max_filesize у файлі настройок php.ini
2 - завантажуваний файл перевищує розмір, встановлений елементом MAX_FILE_SIZE форми html
3 - файл був завантажений частково
4 - файл завантажений не був
Висновок
Підведемо підсумки. В цій лекції ми вивчили, як створювати файли за допомогою мови PHP, як записувати дані у файли за допомогою PHP, як прочитувати з них інформацію різними способами, як перевіряти існування і доступність файлу для запису і читання. Крім того, ми розглянули задачу завантаження файлу на сервер і обговорили основні пов'язані з нею змінні і функції мови PHP.