ESC_URL_RAW() │ WP 2.8.0
Функция esc_url_raw() очищает URL для использования в базе данных, перенаправлениях и HTTP-запросах. Однако она не предназначена для безопасного отображения URL на экране.
Важно! Не используйте эту функцию, ес��и URL отображается в HTML-коде (например, на веб-странице). Вместо этого используйте функцию esc_url(), которая обрабатывает HTML-сущности и защищает от XSS-атак (вектор атак, позволяющий внедрять вредоносный код).
Функция esc_url_raw() является псевдонимом для функции sanitize_url().
Как используется esc_url_raw()
- Время выполнения: 1 раз — 0.000071 сек (очень быстро) | 50000 раз — 1.60 сек (быстро)
- Не имеет хуков.
Возвращаемое значение
Функция возвращает строку — очищенный URL. Если URL содержит протокол, который не указан в массиве $protocols, функция вернет пустую строку.
Использование
esc_url_raw( $url, $protocols );
Параметры:
$url(string) (обязательный) — URL, который нужно очистить.$protocols(array) — массив допустимых протоколов. По умолчанию: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=';
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 для запроса
$url = 'http://example.com';
$response = wp_remote_get( esc_url_raw( $url ) );
if ( ! is_wp_error( $response ) ) {
echo wp_remote_retrieve_body( $response );
}
Пример 3: Неправильное использование
Example
Примечания
- Для очистки URL см. функцию
sanitize_url().
История изменений
- С версии 2.8.0 — введена.
- С версии 6.1.0 — стала псевдонимом для функции
sanitize_url().
Код функции
// wp-includes/formatting.php
function esc_url_raw( $url, $protocols = null ) {
return sanitize_url( $url, $protocols );
}
Связанные функции
esc_attr()esc_html()esc_js()esc_sql()esc_url()- И многие другие функции для очистки и валидации данных.
Используйте esc_url_raw() для поддержки безопасности вашего веб-сайта на WordPress, очищая URL и предотвращая возможные уязвимости!