esc_url_raw() 函数类似与 esc_url() (实际上 esc_url_raw 函数中就使用了 esc_url ),但是不同于 esc_url(),它不会将字符转换成 HTML 实体用于显示,它的结果适用于在数据库查询等操作,重定向,或者 HTTP 请求中。
用法
<?php esc_url_raw( $url, $protocols ); ?>
参数
$url
(string) (required) 将要被清理过滤的 URL
Default: 无
$protocols
(array) (optional) 可以接受协议的数组,如果没有设置,默认是:'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet'。
Default: 无
返回值
(string)
已经清理过滤的 URL
实例
<!-- 正确的用法 -->
<?php
$url = 'http://blog.wpjam.com';
$response = wp_remote_get( esc_url_raw( $url ) ); // no need to espace entities
if ( !is_wp_error( $response ) ) {
echo wp_remote_retrieve_body( $response );
}
?>
<!-- 错误的用法,请使用 esc_url 代替! -->
<img src='<?php echo esc_url_raw( $url ); ?>' />
<a href='<?php echo esc_url_raw( $url ); ?>'>小羿</a>
注解
- 开发者可以通过 cleaned_url 这个 filter 接口队返回 $url 进行再次过滤。
修改记录
Since: 2.8
源文件
wp-includes/formatting.php