wp_get_http_headers()
云策文档标注
概述
wp_get_http_headers() 函数用于从指定 URL 检索 HTTP 头信息。它通过调用 wp_safe_remote_head() 发送 HEAD 请求,并返回一个 WpOrgRequestsUtilityCaseInsensitiveDictionary 对象或 false。
关键要点
- 参数:$url(必需,字符串类型,指定要检索头的 URL)和 $deprecated(可选,布尔类型,已弃用,默认 false)。
- 返回值:成功时返回 WpOrgRequestsUtilityCaseInsensitiveDictionary 对象,失败时返回 false。
- 内部实现:使用 wp_safe_remote_head() 发送安全请求,并通过 wp_remote_retrieve_headers() 提取头信息。
- 相关函数:包括 wp_safe_remote_head()、wp_remote_retrieve_headers()、_deprecated_argument() 和 is_wp_error()。
- 使用场景:例如在 do_enclose() 函数中用于检查内容中的链接。
代码示例
$response = wp_get_http_headers( 'https://wordpress.org' );
print_r( $response->getAll() );
print_r($response->offsetGet('server'));注意事项
- $deprecated 参数已弃用,从版本 2.7.0 起不再使用,调用时传入任何值都会触发 _deprecated_argument() 警告。
- 返回的 WpOrgRequestsUtilityCaseInsensitiveDictionary 对象提供方法如 getAll() 和 offsetGet() 来访问头数据。
- 函数在失败时返回 false,建议使用 is_wp_error() 检查错误。
原文内容
Retrieves HTTP Headers from URL.
Parameters
$urlstringrequired-
URL to retrieve HTTP headers from.
$deprecatedbooloptional-
Not Used.
Default:
false
Source
function wp_get_http_headers( $url, $deprecated = false ) {
if ( ! empty( $deprecated ) ) {
_deprecated_argument( __FUNCTION__, '2.7.0' );
}
$response = wp_safe_remote_head( $url );
if ( is_wp_error( $response ) ) {
return false;
}
return wp_remote_retrieve_headers( $response );
}
Changelog
| Version | Description |
|---|---|
| 1.5.1 | Introduced. |
Skip to note 2 content
Sergio Scabuzzo
Use the returned class’ (WpOrgRequestsUtilityCaseInsensitiveDictionary) methods to get usable data:
$response = wp_get_http_headers( 'https://wordpress.org' ); print_r( $response->getAll() );Array
(
[server] => nginx
[date] => Sat, 09 Sep 2023 04:27:52 GMT
[content-type] => text/html; charset=UTF-8
[vary] => Accept-Encoding
[strict-transport-security] => max-age=3600
[x-olaf] => ⛄[link] => Array
(
[0] => ; rel=”https://api.w.org/”
[1] => ; rel=”alternate”; type=”application/json”
[2] => ; rel=shortlink
)
[x-frame-options] => SAMEORIGIN
[content-encoding] => gzip
[x-nc] => EXPIRED ord 1
)
print_r($response->offsetGet('server'));nginx