Тестирование регулярных выражений на PHP с использованием AJAX

16 сентября, 2007

Наверное, многие слышали о регулярных выражения (regular expressions). Это одно из самых мощных средств обработки текста. Библиотеки для работы с регулярными выражениями написаны практически для всех языков программирования, и часто входят в дистрибутив (например, в PHP и Java).
В этой статье я покажу как написать небольшое, но полезное web приложение, которое позволит тестировать регулярные выражения.

Я уже писал о работе с регулярными выражениями на Java (Анализ данных с помощью регулярных выражений или быстрый способ проверки введенных данных), поэтому сейчас мы посмотрим какие возможности в этой области предоставляет PHP. Тем более, что для нашего web приложения PHP удобнее (нам понадобиться всего один скрипт).
Теперь пару слов о самих регулярных выражениях. Это текстовые строки, в которых по специальным правилам задается шаблон для поиска фрагмента текста. Например, выражение /а.*с/ соответствует любой последовательности символов, которая начинается с буквы «а» и заканчивается буквой «с». С помощью регулярных выражений можно выполнять поиск и замену фрагментов текста, проверять правильность ввода данных и многое другое. Подробнее почитать о составе и использовании регулярных выражений можно здесь.
Ладно, то, что регулярные выражения вещь полезная и удобная мы выяснили. Теперь вернемся к нашему приложению. В первую очередь, нам нужно определиться, что именно оно должно делать.
На мой взгляд, больше всего проблем возникает из-за ошибок в самих регулярных выражениях. Самое неприятное то, что эти ошибки неудобно отслеживать даже с помощью хорошей IDE. Приходиться выполнять отладку программы для всех возможных вариантов введенного текста, который нужно проанализировать с помощью регулярного выражения. При этом нужно просматривать результаты анализа, а это обычно массив строк. Поэтому было бы гораздо удобнее сначала протестировать регулярное выражение, а потом использовать его в программе. Т.е. наше приложение должно получать само регулярное выражение, текст в котором будет выполняться поиск, и выводить все фрагменты текста, которые соответствуют шаблону.
Для того, чтобы немного ускорить работу приложения мы используем технологию Ajax. Это позволит не перезагружать всю страницу после каждой операции поиска, а только обновлять результаты. Экономия для нашего приложения конечно небольшая, но она есть.
Итак, нам нужна html страница с формой для ввода данных и php скрипт, который будет выполнять поиск в тексте.
На рис.1 показана UML диаграмма, иллюстрирующая работу приложения.

Диаграмма действий
Рис.1. Диаграмма действий нашего web приложения

Как видите, все просто. Каждый раз, когда пользователь нажимает кнопку «Поиск» страница (index.html) формирует запрос и отправляет его php скрипту (analyser.php), который возвращает результаты поиска.

В следующий раз я покажу, как написать каждый из компонентов приложения.

Работающее приложение размещено здесь.

Постовой

Эти мягкие игрушки очень понравятся вашему ребенку

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в Ajax, PHP Комментарии (4) »

]]>

Комментарии (4)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

]]>
  1. Serik

    У меня вопрос как на стороне сервера принять JSON и обработать его при помощи PHP.

    function fun(transport){
    var json = transport.responseText.evalJSON();
    alert(json);
    }

    function dataUser() {
    //данные
    var oUser = new Object();
    oUser.login = $('login').value;
    oUser.pass = $('pass').value;
    var sJSON = Object.toJSON(oUser);
    //отправляем ajax запрос
    new Ajax.Request('test.php', {method:'get', parameters:sJSON, onSuccess: fun});
    }

    Данные в заросе post выходят:
    {"login": "log123", "pass": "123"}

    $_POST[sJSON] – пустой ???
    Как получить полный ???

    • Попробуйте изменить
      …parameters:sJSON…
      на
      …parameters:"sJSON=" + sJSON…

      Кстати, есть интересный плагин к jQuery jquery-json. Постараюсь в ближайшее время на эту тему пост написать.

  2. …parameters:"sJSON=" + sJSON… тоже не работает

]]>

Оставить комментарий

* - обязательные для заполнения поля

]]>