在C glib中解析url查询参数?

时间:2019-09-03 00:08:04

标签: c parsing url glib

是否可以在glib下的C语言中获取URL片段参数?

我有一个类似file://localhost/home/me/notepad.txt#line=100,2的网址

获取网址末尾指定的参数的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

没有任何GLib函数可以完成您想要的操作。如果可以使用libsoup(也是GNOME堆栈的一部分),则可以使用SoupURI

g_autoptr(SoupURI) uri = soup_uri_new (uri_string);
const gchar *fragment = soup_uri_get_fragment (uri);

这会将fragment设置为line=100,2。您必须手动进一步解析任何片段格式。 g_strsplit()对此很有用。

答案 1 :(得分:0)

您还可以查看gnome-terminal terminal-nautilus.c文件中的功能parse_sftp_uri。 可以很容易地将其改编为通用URI。

答案 2 :(得分:-1)

不确定是否要解析 notepad.txt#line = 100,2 #line = 100,2 ,尽管如此,我的回答在两种情况下均有效。 / p>

您可以使用strrchr()(man strrchr)函数来获取字符串中字符的最后一次出现。

类似的东西:

char *file;
file = strrchr(url, '/') + 1;