Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к лаб раб web-программирование.doc
Скачиваний:
450
Добавлен:
07.06.2015
Размер:
4.4 Mб
Скачать

Лабораторная работа №2 Работа с файлами в php

Цель работы: получить практические навыки работы с файлами и директориями с помощью PHP.

Теоретические сведения

Работа с файлами

?php

$h = fopen("1.txt","w");

/* открывает на запись файл 1.txt если он существует, или создает пустой

файл с таким именем, если его еще нет */

$h = fopen("dir/2.txt","w+");

/* открывает на запись и чтение или создает файл 2.txt в директории dir */

$h = fopen( "http://www.server.ru/dir/file.php","r");

/* открывает на чтение файл, находящийся по указанному адресу*/

?>

<?php

$h = fopen("my_file.html","w");

$text = "Этот текст запишем в файл.";

if (fwrite($h,$text)) echo "Запись прошла успешно";

else

echo "Произошла ошибка при записи данных";

fclose($h);

?>

В результате работы этого скрипта в браузере мы увидим сообщение о том, что запись прошла успешно, а в файле my_file.html появится строка "Этот текст запишем в файл.". Если бы этот файл существовал до того, как мы выполнили этот скрипт, все находящиеся в нем данные были бы удалены.

Если же мы напишем такой скрипт:

<?php

$h = fopen("my_file.html","a");

$add_text = "Добавим текст в файл.";

if(fwrite($h,$add_text,7)) echo "Добавление текста прошло успешно<br>";

else echo "Произошла ошибка при добавлении данных<br>";

fclose($h);

?>

то к строке, уже существующей в файле my_file.html, добавится еще семь символов из строки, содержащейся в переменной $add_text, т.е. слово «Добавим»

Считывание всех строк файла my_file.txt:

<?php $h = fopen("my_file.html","r");

while (!feof ($h)) {

$content = fgets($h);

echo $content,"<br>";}

?>

Функция stat( ) возвращает индексируемый массив с подробной информацией о файле с заданным именем: stat(string имя_файла)

В элементах массива возвращается следующая информация:

0 Устройство

1 Индексный узел (inode)

2 Режим защиты индексного узла

3 Количество ссылок

4 Идентификатор пользователя владельца

5 Идентификатор группы владельца

6 Тип устройства индексного узла

7 Размер в байтах

8 Время последнего обращения

9 Время последней модификации

10 Время последнего изменения

11 Размер блока при вводе/выводе в файловой системе

12 Количество выделенных блоков

Таким образом, если вы хотите узнать время последнего обращения к файлу, обратитесь к элементу 8 возвращаемого массива. Например:

$file = "datafile.txt";

list($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($file);

echo(date("F d Y H:i:s.", fileatime("1.html")); // вывод в формате даты

Задание к работе:

  1. Ознакомиться с теоретическим материалом.

  2. Cоздать скрипт на php для выполнении индивидуального задания (варианты 1-5 решают задачу 1, варианты 6-10 решают задачу 2, варианты 11-15 решают задачу 3, варианты 16-20 решают задачу 4). Использовать элементы диалога таблицы 1.

  3. Оформить отчет согласно требованиям.

Задачи:

1 Создать скрипт для работы гостевой книги: использовать указанные элементы диалога для ввода информации о пользователях сайта и оставляемых комментариях, которая будет записывается в файл. Создать страницу с просмотром всех сообщений.

2 Создать текстовый файл с информацией о товарах (название, цена, фирма), в котором отдельная строка соответствует одному товару. Создать скрипт, который выводит на страницу прайс товаров с возможностью заказа товара по нажатию кнопки возле соответствующей строки. При заказе товара, обязательно пользователь вводит свое имя и требуемое количество товара. Список заказов хранить в другом файле, например “zakazi.txt”.

Использовать следующую функцию для разбития строки файла на составляющие: list($name,$price)= split (":", $srt,2);

3 Создать список файлов указанной директории, с указанием размеров каждого файла и датой последнего обращения к файлу. Полученную информацию записать в файл statistic_files.txt.

4 В выбранном файле подсчитать кол-во ссылок, таблиц и рисунков.

Отчет должен содержать:

  1. Название и цель работы.

  2. Ход работы с детальным описанием выполненных действий с рисунками, листингом кода.

  3. Экранные формы браузера с загруженными страницами.

  4. Выводы о проделанной работе.

Вопросы для подготовки к защите работы:

  1. Какие вы знаете функции для работы со строками?

  2. Как открыть файл на чтение, для записи в начало, для записи в конец

  3. Функциям работы с директориями?

  4. Обработка ошибок при подключении к файлам?