- •"Web-программирование" методические указания
- •Содержание
- •Введение
- •Лабораторная работа №1 Разработка приложений с помощью php
- •Теоретические сведения
- •Функция in_array
- •Функция array_search
- •Лабораторная работа №2 Работа с файлами в php
- •Теоретические сведения
- •Лабораторная работа №3 Разработка приложений бд на cервере MySql с помощью php
- •Краткие теоретические сведения
- •Взаимодействие php и MySql
- •Установка соединения
- •Выбор базы данных
- •Получение списка полей таблицы
- •Insert.Php
- •Лабораторная работа №4 Разработка сайта с использованием mvc фреймворка
- •Теоретические сведения
- •Лабораторная работа №5 Работа с таблицами бд с использованием mvc фреймворка
- •Теоретические сведения
- •View/Profiles.Php
- •Лабораторная работа №6 Прототипирование веб-сайта с использованием технологий «классического» php и шаблонизатора Smarty
- •Теоретические сведения
- •Возможности php
- •Задание на работу:
- •Лабораторная работа №7 Использование Ajax и js библиотек
- •Теоретические сведения
- •Поддержка ajax браузерами
- •Страница html для примера ajax
- •Код JavaScript приложения ajax
- •Серверные страницы ajax для asp и php
- •Пример ajax на php
- •Создание объекта xmlHttp
- •Xml, json или текст
- •Пример со списком контактов
- •Dom (Document Object Model).
- •Взаимодействие php и xml посредством dom xml
- •Перевод данных xml-файла в объекты и классы php
- •Задание на работу:
- •Лабораторная работа №8 Разработка компонент для cms Joomla. Разработка простого компонента для пользовательской части
- •Лабораторная работа №9 Разработка компонент для cms Joomla. Разработка компонента с использованием базы данных
- •Лабораторная работа №10 Разработка компонент для cms Joomla. Разработка компонента с административной частью
- •Лабораторная работа №11 Разработка приложения с помощью технологии asp.Net
- •Теоретические сведения
- •Первый проект
- •Задание на работу
- •Лабораторная работа №12 Авторизация. Поддержка сеанса пользователя
- •Теоретические сведения
- •Лабораторная работа №13 Работа с бд в asp.Net
- •Теоретические сведения
- •Лабораторная работа №14 Оформление дизайна страниц в asp.Net
- •Теоретические сведения
- •Основы Master Pages
- •Темы и skin (шкурки)
- •Web-програмування
Взаимодействие php и xml посредством dom xml
Что происходит, если взаимодействие PHP и XML осуществляется с помощью объектной модели стандарта DOM? Модуль DOM XML определяет в PHP несколько классов, таких как DomNode, DomDocument, DomElement, DomText и DomAttribute, большинство из которых идут из ядра стандарта DOM. Почти для всех классов (в частности, для перечисленных выше) класс DomNode является родительским, поэтому его свойства и методы наследуются всеми остальными классами.
Если рассмотреть произвольный XML-документ, то классу DomDocument будет соответствовать сам этот документ, классу DomElement – каждый XML-тег, классу DomAttribute – атрибуты тегов, а классу DomText – содержание XML-элементов. В то же время классу DomNode будет соответствовать каждый из перечисленных элементов XML-документа.
Рассмотрим коллекцию, содержащую описания персон. Если каждую из них мы описываем с помощью таких характеристик, как фамилия, имя, дата рождения и электронный адрес, то структура коллекции «Пользователь», где хранится информация обо всех известных нам персонах, может быть представлена следующим образом.
<?xml version="1.0"?>
<collection>
<person id="10">
<name>
<first>Nick</first>
<last>Petrov</last>
</name>
<birth>
<day>23</day>
<month>12</month>
<year>89</year>
</birth>
<email> nick@ngs.ru
</email>
</person>
<person id="20">
<name>
<first>Bob</first>
<last>Ivanov</last>
</name>
<birth>
<day>03</day>
<month>05</month>
<year>90</year>
</birth>
<email> bob@ngs.ru
</email>
</person>
</collection>
Пример 2. Коллекция «Пользователь» в виде XML-файла (persons.xml)
Перевод данных xml-файла в объекты и классы php
Первое, что нужно сделать, если мы хотим работать с XML-данными в PHP при помощи расширения DOM XML, это перевести имеющиеся данные в объекты и классы DOM. Это можно сделать несколькими способами.
С помощью функции domxml_open_mem.
Синтаксис:
object domxml_open_mem (string str)
В качестве параметра эта функция принимает строку str, содержащую XML-документ. Результатом ее работы является объект класса, называемого DOMDocument.
С помощью функции domxml_open_file.
Синтаксис:
object domxml_open_file (string filename)
Эта функция обрабатывает XML-файл, имя которого задается параметром filename, и переводит его в объект класса DOMDocument. Доступ к файлу производится только на чтение.
Такие функции, как domxml_open_mem() и domxml_open_file(), как правило, нужно вызывать перед вызовом любых других функций, связанных с расширением DOM.
Эти функции преобразуют XML-файл в дерево объектов. К таким объектам можно обращаться с помощью различных методов. В частности, для выделения корневого элемента используется метод DomDocument ->document_element().
Еще существует функция domxml_new_doc(string version), которая создает новый пустой XML-документ. Ее параметром является номер версии создаваемого документа. Но ее мы касаться не будем, а будем считать, что XML-файл уже создан.
<?
//считываем файл "persons.xml" в строку
$xmlstr = join('',file('persons.xml'));
// переводим строку с xml-файлом в дерево объектов. Если операция
// прошла неудачно, то выводим ошибку и прекращаем работу.
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Ошибка при разборе документа\n";
exit;
}
// можно посмотреть, как выглядит этот объект
print_r($dom);
echo "<hr>";
// выделяем корневой элемент дерева объектов. В нашем случае это будет
// элемент <collection>
$root = $dom->document_element();
print_r($root);
echo "<hr>";
?>
Пример 3. Перевод XML-файла в дерево объектов PHP и выделение корневого элемента
Каждому элементу XML-файла соответствует какой-то объект. Теперь нужно научиться перемещаться по дереву объектов и обращаться с этими объектами: получать и изменять их значения, находить их потомков и предков, удалять объекты.