是否可以在glib下的C语言中获取URL片段参数?
我有一个类似file://localhost/home/me/notepad.txt#line=100,2
的网址
获取网址末尾指定的参数的最佳方法是什么?
答案 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;