我正在编写一个C / CGI Web应用程序。是否有一个库可以将查询字符串解析为GHashTable
之类的内容?我可以写自己的,但似乎不值得努力重新发明轮子。
答案 0 :(得分:3)
uriparser
库可以将query strings解析为键值对。
答案 1 :(得分:2)
如果您真的在编写C并且已知密钥集,那么您可以更好地将值存储在struct
而不是某个膨胀的哈希表中。有一个static const
表格:
offsetof
宏)并使用它来解析查询字符串并填写结构。
答案 2 :(得分:0)
您可能会发现Apache Portable Runtime(apr)库中的 ap_getword 函数系列很有用。
大多数字符串解析例程属于ap_getword *系列,它们共同提供类似于Perl split()函数的功能。该系列的每个成员都能够从字符串中提取单词,将文本分隔为分隔符,例如空格或逗号。与Perl split()不同,其中整个字符串被一次分割并且片段以列表形式返回,ap_getword *函数一次对一个单词进行操作。该函数每次调用时都返回下一个单词,并通过敲击指针来跟踪它的位置。
您可以在Google上搜索"ap_getword(r->pool" "httpd.h"
并找到一些相关的源代码供您学习。