esc_url_raw()

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Функция подготавливает (очищает) переданную в неё строку как URL для редиректов, HTTP-запросов и запросов к базе данных.

Как конкретно работает функция:

esc_url_raw( $url, $protocols = null )

Параметры

$url
(строка) Текст, который предположительно является урлом, который мы и должны очистить.
$protocols
(массив) Массив из поддерживаемых протоколов в урле (http,ftp и так далее). Если в переданном URL используется протокол, который не указан в этом массиве, то функция возвращает пустую строку. По умолчанию – значение функции wp_allowed_protocols(), которая возвращает массив:

Array
(
    [0] => http
    [1] => https
    [2] => ftp
    [3] => ftps
    [4] => mailto
    [5] => news
    [6] => irc
    [7] => irc6
    [8] => ircs
    [9] => gopher
    [10] => nntp
    [11] => feed
    [12] => telnet
    [13] => mms
    [14] => rtsp
    [15] => sms
    [16] => svn
    [17] => tel
    [18] => fax
    [19] => xmpp
    [20] => webcal
    [21] => urn
)
Array
(
    [0] => http
    [1] => https
    [2] => ftp
    [3] => ftps
    [4] => mailto
    [5] => news
    [6] => irc
    [7] => irc6
    [8] => ircs
    [9] => gopher
    [10] => nntp
    [11] => feed
    [12] => telnet
    [13] => mms
    [14] => rtsp
    [15] => sms
    [16] => svn
    [17] => tel
    [18] => fax
    [19] => xmpp
    [20] => webcal
    [21] => urn
)

Пример. Правильное и неправильное использование

В самом начале описания этой функции, я упомянул, что её нельзя использовать при выводе URL в качестве HTML-атрибутов, а использовать для HTTP-запросов, редиректов и так далее. Что же это означает?

Это означает прежде всего, что подобное использование функции небезопасно!

// Не надо так! Используем esc_url()!
echo '<a href="' . esc_url_raw( $url ) . '">WordPress</a>';

Другое дело – создание HTTP-запросов.

$url = 'http://wordpress.org';
$response = wp_remote_get( esc_url_raw( $url ) ); // всё супер
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии