Як зробити парсер

Як зробити парсер

Парсинг є одним із широко використовуваних прийомів при програмуванні веб сторінок. Він легко і просто дозволяє отримати необхідний сервіс на сайт за допомогою невеликої кількості команд, коли немає можливості самостійно написати необхідний скрипт.

Інструкція

  1. Найпростіше здійснити парсинг за допомогою PHP функції file_get_contents (). Вона дозволяє отримати вміст файлу у вигляді текстового рядка. Функція використовує алгоритм «memory mapping», що покращує її продуктивність.
  2. Наприклад, щоб написати скрипт, який парсити дані з сайту ЦБ РФ, необхідно отримати за допомогою відповідної функції вміст XML-сторінки, попередньо визначивши дату у відповідному для сайту форматі, після чого за допомогою регулярних виразів розбити її. Для відображення обраної валюти використовується код, отриманий з сайту Банку:

    $ Data = date («d / m / Y»);

    $ Get = file_get_contents (http://www.cbr.ru/scripts/XML_daily.asp?date_req = $ data);

    preg_match («/ (.*?) < / Valute > / is», $ get, $ string);

    preg_match («/(.*?)< / Value> / is «, $ string [1], $ str);
  3. Якщо потрібно парсити безпосередньо сам файл XML, то для цього існують також відповідні функції. Для початку парсера необхідно його ініціалізувати за допомогою xml_parser_create:

    $ Parser = xml_parser_create ();
  4. Потім вказується перелік функцій, які будуть обробляти відповідні теги і текстову інформацію. Встановлюються відповідні обробники початку і кінця елемента XML:

    xml_set_element_handler ($ parser, «startElement», «endElement»);
  5. Зчитувати дані можна за допомогою стандартної функції fopen () і fgets () в рамках відповідного циклу. Вміст файлів віддається порядково в xml_parse (). В останньому параметрі передається прапор зчитування останнього рядка:

    while ($ content = fgets ($ fparse)) {

    if (! xml_parse ($ parser, $ content, feof ($ fparse))) {

    echo «Error»;

    break;}}
  6. Для звільнення займаних системою ресурсів використовується функція xml_parser_free (). Ці функції є найбільш дієвими при обробці XML файлів.