用于解析查询字符串的C库?

时间:2011-01-03 10:10:51

标签: c cgi query-string

我正在编写一个C / CGI Web应用程序。是否有一个库可以将查询字符串解析为GHashTable之类的内容?我可以写自己的,但似乎不值得努力重新发明轮子。

3 个答案:

答案 0 :(得分:3)

uriparser库可以将query strings解析为键值对。

答案 1 :(得分:2)

如果您真的在编写C并且已知密钥集,那么您可以更好地将值存储在struct而不是某个膨胀的哈希表中。有一个static const表格:

  • 密钥名称
  • type(整数/字符串可能就足够了)
  • 结构中的偏移量(使用offsetof宏)

并使用它来解析查询字符串并填写结构。

答案 2 :(得分:0)

您可能会发现Apache Portable Runtime(apr)库中的 ap_getword 函数系列很有用。

  

大多数字符串解析例程属于ap_getword *系列,它们共同提供类似于Perl split()函数的功能。该系列的每个成员都能够从字符串中提取单词,将文本分隔为分隔符,例如空格或逗号。与Perl split()不同,其中整个字符串被一次分割并且片段以列表形式返回,ap_getword *函数一次对一个单词进行操作。该函数每次调用时都返回下一个单词,并通过敲击指针来跟踪它的位置。

您可以在Google上搜索"ap_getword(r->pool" "httpd.h"并找到一些相关的源代码供您学习。