Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабораторныйПрактикум_2.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
578 Кб
Скачать
☆

Пример работы с файлом

Пример 1.

Задание: создать журнал посещения сайта.

Реализация:

Главная страница:

Мы открываем файл режимом «a+», что означает следующее:

  • файл будет открыт для работы в текстовом режиме

  • данные будут записываться в конец файла

  • если файл не существует, он будет создан

При открытии файла мы получаем его целочисленный дескриптор, который будем использовать при дальнейшей работе.

Далее мы записываем в файл три строки.

  • Дата и время

  • IP-адрес

  • Откуда пришел (будет пустым, если прямой заход на сайт, т.е. адрес был набран вручную)

Обратите внимание, что для перехода на новую строку используется последовательность «\n». Ее следует писать в двойных кавычках, тогда она заменится на спецсимвол переноса строки. Если же ‘\n’ написать в апострофах, то это будет просто символ «\», за которым следует символ «n». Наконец, когда работа с файлом завершена, его следует закрыть. Для этого служит функция fclose().

Страница журнала посещений:

Необходимо создать две статичные странички – Сайт1 и Сайт 2 с ссылкой на главную страницу для отслеживания посещаемости.

Загрузка файла на сервер. Пример.

Задание: Реализовать загрузку файла на сервер.

Реализация:

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

Вся информация о загруженном на сервер файле содержится в глобальном массиве $_FILES.

Массив $_FILES всегда имеет следующие элементы:

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

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

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

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

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

Здесь 'myfile' - это имя элемента формы, с помощью которого была произведена загрузка файла на сервер. То есть оно может быть другим, если элемент формы назвать иначе. Но вот другие ключи ( name, type и т. д.) остаются неизменными для любой формы.

Ошибок при загрузке в PHP выделяют пять типов и соответственно $_FILES['myfile']['error'] может иметь пять значений:

  • 0 - ошибки не произошло, файл загружен успешно

  • 1 - загружаемый файл превышает размер, установленный директивой upload_max_filesize в файле настроек php.ini

  • 2 - загружаемый файл превышает размер, установленный элементом MAX_FILE_SIZE формы html

  • 3 - файл был загружен частично

  • 4 - файл загружен не был

По умолчанию загруженные файлы сохраняются во временной директории сервера, если другая директория не указана с помощью опции upload_tmp_dir в файле настроек php.ini. Переместить загруженный файл в нужную директорию можно с помощью функции move_uploaded_file().

Функция move_uploaded_file() имеет следующий синтаксис:

bool move_uploaded_file (временное_имя_файла, место_назначения )

Эта функция проверяет, действительно ли файл, обозначенный строкой временное_имя_файла, был загружен через механизм загрузки HTTP методом POST. Если это так, то файл перемещается в файл, заданный параметром место_назначения (этот параметр содержит как путь к новой директории для хранения, так и новое имя файла).

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

Обработчик: