Цели работы
Получить навыки работы со встроенными функциями php на примере некоторых функций текстовой обработки. Освоить документацию PHP http://php.net, научиться выполнять поиск нужных функций, определять синтаксис, аргументы, возвращаемое значение. Изучить следующие функции текстовой обработки:
chunk_split | explode | htmlentities | htmlspecialchars | html_entity_decode | htmlspecialchars_decode | implode | ltrim |
rtrim | nl2br | parse_str | str_replace | str_split | strip_tags | strlen | strstr |
strtok | substr_count | substr_replace | substr | trim | ucfirst | mb_convert_encoding | mb_detect_encoding |
mb_ereg | mb_internal_encoding | mb_language | mb_split | mb_strlen | mb_strpos | mb_substr | mb_substr_count |
Описание работы
Необходимо написать скрипт test_generator.php, выводящий тест (который хранится в текстовом файле test_xml) в виде списка следующего вида:
- 1. Первый вопрос
- 1.1 Первый ответ на вопрос 1
- 1.2 Второй ответ на вопрос 1
- 1.3 Третий ответ на вопрос 1
- 2. Второй вопрос
- 2.1 Первый ответ на вопрос 2
- 2.2 Второй ответ на вопрос 2
<?xml version="1.0" standalone="yes"?> <test> <question id="1"> <name>Первый вопрос</name> <answer id="1">Первый ответ на вопрос 1</answer> <answer id="2">Второй ответ на вопрос 1</answer> <answer id="3">Третий ответ на вопрос 1</answer> </question> <question id="2"> <name>Второй вопрос</name> <answer id="1">Первый ответ на вопрос 2</answer> <answer id="2">Второй ответ на вопрос 2</answer> </question> </test>
Тест может содержать произвольное количество вопросов и вариантов ответа.
Количество символов в строке вопроса/ответа не ограничено.
Необходимо выполнить следующую обработку текста:
1) Удалить теги xml;
2) Удалить повторяющиеся пробелы;
3) Удалить пробелы вначале и конце строки;
4) Сделать первый символ вопроса/ответа заглавным;
5) Преобразовать специальные символы (&,", > и т.д.) в коды html.
Выводимый текст не должен выходить за границы видимой области окна браузера,
независимо от длины строк вопроса/ответа.
Оформление html-страницы может быть любым.
Допустимо следующее упрощение задачи: каждый вопрос/ответ расположен в отдельной строке файла test_xml.
При решении задачи также допускается использование функций PHP, не указанных в целях данной работы (например, функции работы с регулярными выражениями и xml). В этом случае программист сам несет ответственность за проверку обрабатываемого текста на соответствие формату xml.
Критерии оценки работы
Задание оценивается в 8 баллов при условии соблюдения срока, определенного для данной лабораторной работы. При этом задание должно быть выполнено полностью, результат должен соответствовать требованиям задания, автор обязан понимать собственное решение. При несоблюдении сроков сдачи задания, базовый балл уменьшается вдвое каждую пару после срока.
Защищая работу, студент должен продемонстрировать знание общего назначения функций, используемых в решении, а также приведенных в разделе "Цели работы" (например, str_split — преобразование строки в массив), умение пользоваться справочной документацией для получения основной информации (описание функции, формат вызова и т.д.).