Учебник по PHP

PHP ГЛАВНАЯ Введение в PHP Установка PHP Синтаксис PHP Комментарии PHP PHP-переменные PHP-эхо/печать Типы данных PHP PHP-строки PHP-номера PHP-математика PHP-константы PHP-операторы PHP Если... Иначе... Иначе PHP-переключатель PHP-циклы PHP-функции PHP-массивы PHP-суперглобальные переменные PHP регулярное выражение

PHP- формы

Обработка форм PHP Проверка формы PHP Требуется PHP-форма URL-адрес формы PHP/электронная почта PHP-форма завершена

PHP продвинутый

Дата и время PHP PHP включает Обработка файлов PHP Открытие/чтение файла PHP Создание/запись файла PHP Загрузка файла PHP PHP-куки PHP-сессии PHP-фильтры Расширенные фильтры PHP Функции обратного вызова PHP PHP JSON Исключения PHP

PHP ООП

PHP Что такое ООП PHP-классы/объекты PHP-конструктор PHP-деструктор Модификаторы доступа PHP Наследование PHP PHP-константы Абстрактные классы PHP PHP-интерфейсы Особенности PHP Статические методы PHP Статические свойства PHP Пространства имен PHP Итерации PHP

База данных MySQL

База данных MySQL Подключиться к MySQL MySQL Создать БД MySQL Создать таблицу Вставка данных MySQL MySQL Получить последний идентификатор MySQL Вставить несколько MySQL подготовлен Выбор данных MySQL MySQL Где Порядок MySQL MySQL Удалить данные Данные обновления MySQL Предельные данные MySQL

PHP XML

XML-парсеры PHP Парсер PHP SimpleXML PHP SimpleXML — Получить PHP XML Expat PHP XML DOM

PHP — АЯКС

Введение в АЯКС АЯКС PHP База данных AJAX АЯКС XML AJAX-поиск в реальном времени АЯКС-опрос

Примеры PHP

Примеры PHP PHP-компилятор PHP-викторина PHP-упражнения PHP-сертификат

Справочник по PHP

Обзор PHP PHP-массив Календарь PHP Дата PHP PHP-каталог Ошибка PHP PHP-исключение Файловая система PHP PHP-фильтр PHP FTP PHP JSON Ключевые слова PHP PHP-библиотека XML PHP-почта PHP-математика PHP Разное PHP MySQLi PHP-сеть Управление выводом PHP PHP регулярное выражение PHP SimpleXML PHP-поток PHP-строка Обработка переменных PHP XML-парсер PHP PHP-архив Часовые пояса PHP

Экспат-парсер PHP XML


Встроенный XML Expat Parser позволяет обрабатывать XML-документы в PHP.


Экспат-парсер XML

Парсер Expat — это парсер, основанный на событиях.

Посмотрите на следующую фракцию XML:

<from>Jani</from>

Синтаксический анализатор, основанный на событиях, сообщает приведенный выше XML в виде серии из трех событий:

  • Начальный элемент: от
  • Начальный раздел CDATA, значение: Jani
  • Закрыть элемент: от

Функции XML Expat Parser являются частью ядра PHP. Для использования этих функций установка не требуется.


XML-файл

XML-файл «note.xml» будет использоваться в приведенном ниже примере:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


Инициализация анализатора XML Expat

Мы хотим инициализировать синтаксический анализатор XML Expat в PHP, определить несколько обработчиков для различных XML-событий, а затем проанализировать XML-файл.

Пример

<?php
// Initialize the XML parser
$parser=xml_parser_create();

// Function to use at the start of an element
function start($parser,$element_name,$element_attrs) {
  switch($element_name) {
    case "NOTE":
    echo "-- Note --<br>";
    break;
    case "TO":
    echo "To: ";
    break;
    case "FROM":
    echo "From: ";
    break;
    case "HEADING":
    echo "Heading: ";
    break;
    case "BODY":
    echo "Message: ";
  }
}

// Function to use at the end of an element
function stop($parser,$element_name) {
  echo "<br>";
}

// Function to use when finding character data
function char($parser,$data) {
  echo $data;
}

// Specify element handler
xml_set_element_handler($parser,"start","stop");

// Specify data handler
xml_set_character_data_handler($parser,"char");

// Open XML file
$fp=fopen("note.xml","r");

// Read data
while ($data=fread($fp,4096)) {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
}

// Free the XML parser
xml_parser_free($parser);
?>

Объяснение примера:

  1. Инициализируйте синтаксический анализатор XML с помощью xml_parser_create()функции
  2. Создайте функции для использования с различными обработчиками событий.
  3. Добавьте xml_set_element_handler()функцию, чтобы указать, какая функция будет выполняться, когда синтаксический анализатор встретит открывающий и закрывающий теги.
  4. Добавьте xml_set_character_data_handler()функцию, чтобы указать, какая функция будет выполняться, когда синтаксический анализатор встречает символьные данные.
  5. Разобрать файл «note.xml» с помощью xml_parse()функции
  6. В случае ошибки добавить xml_error_string()функцию преобразования ошибки XML в текстовое описание
  7. Вызовите xml_parser_free()функцию, чтобы освободить память, выделенную xml_parser_create()функцией

Еще PHP XML Expat Parser

Для получения дополнительной информации о функциях PHP Expat посетите наш Справочник по синтаксическому анализатору PHP XML .