esc_url_raw()
Очищает URL для безопасного использования в запросе к БД, при редиректах и HTTP запросах. Не очищает для безопасного вывода на экран.
Не используйте эту функцию, если УРЛ выводится в HTML коде (на экран), используйте esc_url() - она заменяет HTML сущности - это защитит от XSS атак.
У этой функции также есть алиас (копия) - sanitize_url(). В некоторых контекстах для лучшей читаемости кода лучше использовать её.
Работает на основе: esc_url()
1 раз — 0.000071 сек (очень быстро) | 50000 раз — 1.60 сек (быстро)
Хуков нет.
Возвращает
Строку
. Вернет пустую строку, если в УРЛ указан неуказанный в $protocols протокол.
Использование
esc_url_raw( $url, $protocols );
- $url(строка) (обязательный)
- УРЛ, который нужно очистить.
- $protocols(массив)
- Массив допустимых протоколов. Если не установлено, то: http, https, ftp, ftps, mailto, news, irc, gopher, nntp, feed, telnet.
По умолчанию: null
Примеры
#1 Демонстрация работы
echo esc_url_raw( '//example.com/foo?bar' ); // //example.com/foo?bar echo esc_url_raw( '/example.com/foo?bar' ); // /example.com/foo?bar echo esc_url_raw( '/example/foo?bar' ); // /example/foo?bar echo esc_url_raw( '/' ); // / echo esc_url_raw( 123 ); // http://123 echo esc_url_raw( '123' ); // http://123 var_dump( esc_url_raw( '' ) ); // string(0) "" var_dump( esc_url_raw( false ) ); // string(0) "" var_dump( esc_url_raw( null ) ); // string(0) "" var_dump( esc_url_raw( [] ) ); // string(0) "" $url = 'http://example.com?foo=<script>/some</script>'; echo esc_url_raw( $url ); // http://example.com?foo=script/some/script echo esc_url( $url ); // http://example.com?foo=script/some/script
#2 Очистка УРЛ перед использованием в запросе
$url = 'http://example.com'; $response = wp_remote_get( esc_url_raw( $url ) ); // не нужно очищать сущности if ( ! is_wp_error( $response ) ) { echo wp_remote_retrieve_body( $response ); }
#3 Неправильное использование
<!-- ОШИБКА! Нужно использовать esc_url()! --> <img src='<?php echo esc_url_raw( $url ); ?>' /> <a href='<?php echo esc_url_raw( $url ); ?>'>Example</a>
Заметки
- Смотрите: sanitize_url()
Список изменений
С версии 2.8.0 | Введена. |
С версии 6.1.0 | Turned into an alias for sanitize_url(). |
Код esc_url_raw() esc url raw WP 6.2
function esc_url_raw( $url, $protocols = null ) { return sanitize_url( $url, $protocols ); }