The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Помогите с регексами"
Отправлено Dr. Nebula, 31-Авг-05 18:12 
Пытаюсь нормально настроить squidguard.cgi

Но в нем не правильно указано регулярное выражение для парсинга строки

строка:
clientaddr=192.168.16.1+clientname=+clientident=login+srcclass=sample-clients+targetclass=porn+url=http://www.sex.ru/

Код для парсинга
  if (defined($query)) {
    while ($query =~ /^\&?([^\&=]+)=\"([^\"]*)\"(.*)/ || $query =~ /^\&?([^\&=]+)=([^\&=]*)(.*)/) {
      my $key = $1;
      my $value = $2;
      $value = %word->{"unknown"}->{$lang} unless(defined($value) && $value && $value ne "unknown");
      $query = $3;
      if ($key =~ /^(clientaddr|clientident|clientuser|clientgroup|targetgroup|url)$/) {
        eval "\$$key = \$value";
      }
      if ($query =~ /^url=(.*)/) {
        $url = $1;
        last;
      }
    }
  }

Если убрать в выражении кавычки - получим что все кроме урла забьется в clientaddr. А иначе - вобще не парсит толком

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру