Тема. Работа с файлами.
1. Изучить материалы приложения п. 7.
2. Проделать примеры, приведенные в данном разделе.
3. Создать программу для проведения опроса – голосования по оценке какого-то товара или мероприятия (файл lab7_1.php).
3.1. Создать форму голосования с вопросом «Как вы оцениваете наш магазин» и вариантами ответов в виде radio-button (см. рис. 7.1).
Рис. 7.1. Вид формы для проведения опроса.
· Программа должна обеспечивать следующее:
По нажатию кнопки «проголосовать» нужно в соответствии с выбранной оценкой, открыть необходимый файл, прочитать записанное в файле число, увеличить его на единицу и перезаписать обратно. Вывести результаты голосования.
Рекомендации по составлению программы.
1. Создать файлы для хранения информации: 5.txt, 4.txt, 3.txt и 2.txt с первоначальным значением 0 в каждом файле. В дальнейшем в них будут записываться значения счетчиков ответов при голосовании.
2. Написать фрагмент программы, обеспечивающий вывод формы. Значения параметров поля формы указать цифрой (5, 4, 3, 2), совпадающей с именем файла. Например:
<input type="radio" name="vote" value="5" checked > отлично<br>
|
|
3. Составить программу обработки переданных данных (например, методом POST). Ниже приведен фрагмент программы для реализации обработки файлов (чтения и записи нового значения):
if (@$_POST['vote']) {
// если параметр vote передаётся методом post, значит нажата кнопка проголосовать
$file=$_POST['vote'].".txt";
// в переменной vote содержится число 2, 3, 4, или 5. Наши файлы имеют такие же названия, значит мы можем использовать эти значения для выбора файла
$f=@fopen($file,"r");
// открываем файл для чтения
$votes=fread($f,100);
// записываем в переменную $votes старое количество голосов
fclose($f);
// закрываем файл
$votes++;
// увеличиваем на единицу количество голосов
$f=@fopen($file,"w");
// открываем файл для записи
fwrite($f,$votes);
// записываем в файл новое количество голосов
fclose($f);
// закрываем файл
4. Дописать фрагмент программы для считывания информации из каждого файла и вывода результата (примерный вид см. рис. 7.2).
Рис. 6.2. Пример вывода результатов опроса.
5. Протестировать работу программы не менее десяти раз, просмотреть содержимое файлов 1.txt – 5.txt.
6. **Модифицировать программу так, чтобы результаты голосования выводились в виде диаграммы (см. рис. 7.3).
Рис. 6.3. Вывод результатов опроса в форме графика.
Рекомендации:
Для вывода диаграммы можно воспользоваться тэгом горизонтальной линии <hr> с параметрами. Например:
?>
<hr align="left" color="#FF0000" size="20" width="<?=$v1[$i]?>">
<?
Значение параметра, отвечающего за ширину линии, здесь заданы фрагментом php-скрипта - упрощенная форма вывода переменной. Рекомендуется при чтении значений голосования из файлов сформировать из них массив -.$v1[$i].
|
|
Для нормировки (масштабирования) значений голосования необходимо определить максимальный элемент и поставить ему в соответствие желаемую ширину линии в пикселях.
==
** - Задача повышенной сложности.
7. Создать два вспомогательных файла. Первый должен обеспечивать создание текстовых файлов 2.txt, 3.txt,4.txt, 5.txt и запись в них числа 0. Второй - удаление этих файлов. Произвести несколько раз тестирование процесса голосования.