函数
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组件是ASCII或UTF-8时才会工作,因此如果它们不是,您则需要使用G_URI_FLAGS_ENCODED
。
请注意,G_URI_FLAGS_HAS_PASSWORD
和G_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
,则必须将其初始化为NULL
的GError*
。如果没有错误,函数将参数初始化为 NULL
。在发生错误的情况下,参数将被设置为新的 GError
分配;调用者将拥有数据,并负责释放它。