WP_SAFE_REMOTE_REQUEST() │ WP 3.6.0
Функция WP_SAFE_REMOTE_REQUEST() позволяет получить ответ от безопасного HTTP-запроса.
Эта функция особенно полезна, когда вы отправляете запрос на произвольный URL. Она проверяет, что указанный URL и все адреса, на которые он перенаправляет, безопасны, чтобы избежать атак на сервер через подделку запросов (так называемый SSRF — Server Side Request Forgery).
Использование
Функция wp_safe_remote_request() принимает два параметра:
$res = wp_safe_remote_request( $url, $args );
- $url (string) (обязательный) — URL, с которого вы хотите получить данные.
- $args (array) — аргументы запроса. См.
WP_Http::request()для деталей о принимаемых аргументах. По умолчанию — пустой массив.
Возвра��
Функция возвращает либо массив с ответом, либо объект WP_Error в случае ошибки. Для получения дополнительной информации о возвращаемом значении см. WP_Http::request().
Пример использования
Пример 1: Получение данных сервера по URL
Допустим, мы хотим получить страницу http://wordpress.org, но сначала нам нужно проверить, вернул ли сервер код состояния 200 (ОК):
$res = wp_safe_remote_request('http://wordpress.org');
print_r( $res );
В результате мы получаем:
Array (
[headers] => Array
(
[server] => nginx
[date] => Sun, 02 Nov 2014 21:01:46 GMT
[content-type] => text/html; charset=utf-8
[connection] => close
[vary] => Accept-Encoding
[x-frame-options] => SAMEORIGIN
)
[body] =>
...
[response] => Array
(
=> 200
[message] => OK
)
[cookies] => Array
(
)
[filename] =>
)
Примечания
- Для получения дополнительной информации о формате массива ответа, смотрите
wp_remote_request(). - Для информации о стандартных параметрах смотрите
WP_Http::request(). - Для более подробной информации о проверке URL смотрите
wp_http_validate_url().
История изменений
- Версия 3.6.0 — функция была введена.
Код функции
Вот как реализована функция wp_safe_remote_request внутри кода WordPress:
function wp_safe_remote_request( $url, $args = array() ) {
$args['reject_unsafe_urls'] = true;
$http = _wp_http_get_object();
return $http->request( $url, $args );
}
Связанные функции
WordPress предоставляет несколько связанных функций для работы с HTTP-запросами:
status_header()wp_get_http_headers()wp_http_validate_url()wp_remote_get()wp_remote_head()wp_remote_post()wp_remote_request()wp_remote_retrieve_body()wp_remote_retrieve_cookie()wp_remote_retrieve_cookie_value()wp_remote_retrieve_cookies()wp_remote_retrieve_header()wp_remote_retrieve_headers()wp_remote_retrieve_response_code()wp_remote_retrieve_response_message()
Эти функции помогут вам более эффективно работать с HTTP-запросами в WordPress.