Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА Web-сервис.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
68.04 Кб
Скачать

2. Использование Web-сервиса

1. В папку Lab4_PHP скопировать файл nuSOAP (из предыдущего пункта) и файлы Index. php и Browse. php из первой лабораторной работы.

2. Открыть в любом редакторе файл Index. php.

3. Ввести открывающий тег сценария <?php

4. Подключить код сценария nusoap. php:

require_once('nusoap. php');

5. Создать экземпляр SOAP-клиента.

5.1 Создать переменную client

5.2 Инициализировать конструктор класса soapclient и передать ему в качестве параметра URL SOAP-сервера (из предыдущего пункта):

$client = new soapclient('http://localhost/denwer/Lab4_PHP/server/index. php');

6. Вызвать SOAP-метод faculty:

$faculty = $client->call('faculty');

7. Аналогичным образом вызвать SOAP-методы spec и gr:

$spec = $client->call('spec');

$gr = $client->call('gr');

8. Записать результаты в экземпляры DOM-объектов

8.1 Создать экземпляр DOM-объекта и записать его в переменную fac_dom:

$fac_dom = new DOMDocument();

8.2 Задать кириллическую кодировку DOM-объекта:

$fac_dom -> encoding = "windows-1251";

8.3 Загрузить в DOM-объект XML-данные о факультетах, полученные в результате вызова SOAP-метода faculty:

$fac_dom->loadXml(iconv("windows-1251", "utf-8", $faculty));

8.4 Аналогичным образом создать DOM-объекты spec_dom (для XML-данных о специальностях) и gr_dom (для XML-данных о группах).

9. Ввести закрывающий тег сценария?>

10. В раскрывающийся список факультетов (HTML-элемент select с атрибутом name = "faculty") добавить данные из XML-списка факультетов. Для этого после строки

<option value="0">Выберите факультет</option>

10.1 Ввести открывающий тег сценария:

<?php

10.2 Построить цикл по элементам DOM-объекта fac_dom:

foreach ($fac_dom->documentElement->childNodes as $item) {

10.3 Создать строковую переменную value и занести в нее значение XML-атрибута ID:

$value = iconv("utf-8", "windows-1251", $item->getAttribute('ID'));

10.4 Создать строковую переменную text и занести в нее значение XML-атрибута name:

$text = iconv("utf-8", "windows-1251", $item->getAttribute('name'));

10.5 Вывести HTML-код элемента списка option со значением из переменной value и отображаемым текстом из переменной text.

echo "<option value='".$value."'>".$text."</option>";

}

10.6. Ввести закрывающий тег сценария?>

11. Аналогичным образом заполнить раскрывающиеся списки специальностей (из DOM-объекта spec_dom) и групп (из DOM-объекта gr_dom).

12. Открыть в любом редакторе файл Browse. php.

13. Подключить код сценария nusoap. php:

require_once('nusoap. php');

14. Создать строковую переменную gr и занести в нее значение параметра gr, переданного методом POST со страницы Index. php:

$gr = $_POST['gr'];

15. Создать экземпляр SOAP-клиента (см. п. 5) client.

16. Вызвать метод usp и в качестве входного параметра передать ему значение строковой переменной gr:

$result = $client->call('usp', array('group' => $gr));

17. Записать результаты в экземпляр DOM-объекта usp_dom:

$usp_dom = new DOMDocument();

$usp_dom -> encoding = "windows-1251";

$usp_dom->loadXml(iconv("windows-1251", "utf-8", $result));

18. Заполнить таблицу TABLE со стилем textborder данными из XML-набора записей об успеваемости студентов

18.1 Ввести открывающий тег сценария:

<?php

18.2 Построить цикл по элементам DOM-объекта usp_dom:

foreach ($usp_dom->documentElement->childNodes as $item)

{

18.3 Занести в переменные fio, subject, ocenka и data значения одноименных XML-атрибутов:

$fio= iconv("utf-8", "windows-1251", $item->getAttribute('fio'));

$subject = iconv("utf-8", "windows-1251", $item->getAttribute('subject'));

$ocenka = iconv("utf-8", "windows-1251", $item->getAttribute('ocenka'));

$data = iconv("utf-8", "windows-1251", $item->getAttribute('data'));

18.4 Ввести закрывающий тег сценария?>

18.5 Ввести открывающий тег элемента TR:

<TR>

18.6. Ввести открывающий тег первого столбца (шириной 30% от общей ширины таблицы). Задать стиль представления текста в столбце tabletext:

<TD width="30%"><SPAN class="tabletext">

18.7 Вывести значение переменной fio

<?php

echo $fio;

?>

18.8 Закрыть элементы SPAN и TD:

</SPAN></TD>

18.9 Аналогичным образом построить столбцы для представления данных из переменных subject, data и ocenka соответственно.

19. Протестировать полученное Web-приложение

Вариант В. Технология JSP и СУБД MySQL