函数

GLibUrisplit

自:2.66

声明 [src]

gboolean
g_uri_split (
  const gchar* uri_ref,
  GUriFlags flags,
  gchar** scheme,
  gchar** userinfo,
  gchar** host,
  gint* port,
  gchar** path,
  gchar** query,
  gchar** fragment,
  GError** error
)

描述 [src]

根据flags解析uri_ref(可以是绝对或相对URI),并返回片段。不在uri_ref中出现的任何组件都将返回为NULL(但请注意,所有URI始终有一个路径组件,尽管它可能是空字符串)。

如果flags包含G_URI_FLAGS_ENCODED,则uri_ref中的百分号编码字符将在输出字符串中保持编码状态。(如果不包含,则所有此类字符都将解码。)请注意,解码仅在URI组件是ASCIIUTF-8时才会工作,因此如果它们不是,您则需要使用G_URI_FLAGS_ENCODED

请注意,G_URI_FLAGS_HAS_PASSWORDG_URI_FLAGS_HAS_AUTH_PARAMS flags由g_uri_split()忽略,因为它始终只返回完整的用户信息;如果您想要分开,请使用g_uri_split_with_user()

自:2.66

参数

uri_ref

类型: const gchar*

包含相对或绝对URI的字符串。

数据是由函数的调用者拥有的。
值是一个以空字符终止的UTF-8字符串。
flags

类型: GUriFlags

解析uri_ref的标志。

scheme

类型: gchar**

返回时,包含方案(转换为小写),或NULL

该参数将由函数设置。
函数可以将参数设置为NULL
该参数可以是NULL
函数的调用者拥有返回的数据,并负责释放它。
值是一个以空字符终止的UTF-8字符串。
userinfo

类型: gchar**

返回时,包含用户信息,或NULL

该参数将由函数设置。
函数可以将参数设置为NULL
该参数可以是NULL
函数的调用者拥有返回的数据,并负责释放它。
值是一个以空字符终止的UTF-8字符串。
host

类型: gchar**

返回时,包含宿主,或NULL

该参数将由函数设置。
函数可以将参数设置为NULL
该参数可以是NULL
函数的调用者拥有返回的数据,并负责释放它。
值是一个以空字符终止的UTF-8字符串。
port

类型: gint*

返回时,包含端口,或-1

该参数将由函数设置。
该参数可以是NULL
path

类型: gchar**

返回时,包含路径。

该参数将由函数设置。
该参数可以是NULL
函数的调用者拥有返回的数据,并负责释放它。
值是一个以空字符终止的UTF-8字符串。
query

类型: gchar**

返回时,包含查询,或NULL

该参数将由函数设置。
函数可以将参数设置为NULL
该参数可以是NULL
函数的调用者拥有返回的数据,并负责释放它。
值是一个以空字符终止的UTF-8字符串。
fragment

类型: gchar**

返回时,包含片段,或NULL

该参数将由函数设置。
函数可以将参数设置为NULL
该参数可以是NULL
函数的调用者拥有返回的数据,并负责释放它。
值是一个以空字符终止的UTF-8字符串。
error

类型: GError **

恢复错误的返回位置。

该参数可以是NULL
如果返回位置不是NULL,则必须将其初始化为NULLGError*
如果没有错误,函数将参数初始化为NULL
在发生错误的情况下,参数将被设置为新的GError分配;调用者将拥有数据,并负责释放它。

返回值

类型: gboolean

如果uri_ref解析成功返回TRUE,发生错误时返回FALSE