C библиотека для разбора строк запроса? - PullRequest
5 голосов
/ 03 января 2011

Я пишу веб-приложение C / CGI.Есть ли библиотека для разбора строки запроса на что-то вроде GHashTable?Я мог бы написать свой, но, конечно, это не стоит усилий, чтобы изобрести колесо.

Ответы [ 3 ]

3 голосов
/ 03 января 2011

Библиотека uriparser может анализировать строки запроса в пары ключ-значение.

2 голосов
/ 03 января 2011

Если вы действительно пишете C и набор ключей известен, вам лучше хранить значения в struct вместо некоторой раздутой хэш-таблицы.Таблица static const:

  • имя ключа
  • тип (возможно, достаточно целое число / строка)
  • смещение в структуре (с использованием макроса offsetof)

и используйте его для разбора строки запроса и заполнения структуры.

0 голосов
/ 10 июня 2012

Вы можете найти полезное семейство функций ap_getword из библиотеки Apache Portable Runtime (apr).

Большинство подпрограмм разбора строк принадлежит семейству ap_getword *, котороевместе обеспечивают функциональность, аналогичную функции Perl split ().Каждый член этого семейства может извлечь слово из строки, разделив текст на разделители, такие как пробелы или запятые.В отличие от Perl split (), в которой вся строка разбивается сразу и части возвращаются в списке, функции ap_getword * работают с одним словом за раз.Функция возвращает следующее слово каждый раз, когда оно вызывается, и отслеживает, где оно было, путем увеличения указателя.

Вы можете найти в Google "ap_getword(r->pool" "httpd.h" и найти соответствующий исходный код для изучения.

...