wp_safe_remote_request()WP 3.6.0

Получает данные по переданному HTTP запросу (УРЛ). Данные возвращаются в виде массива: тело, заголовки, статус ответа...

Функция отлично подходит при HTTP запросах на неизвестные URL. Указанный URL проверяется, чтобы избежать редиректов и атак связанных с "подделкой" URL.

Работает на основе: _wp_http_get_object()

Хуков нет.

Возвращает

Массив|WP_Error. WP_Error/массив: ответ сервера в виде массива или объект WP_Error в случает ошибки.

Использование

wp_safe_remote_request( $url, $args );
$url(cтрока) (обязательный)
УРЛ сайта, данные которого нужно получить.
$args(массив)
Параметры запроса.
По умолчанию: array()

Примеры

0

#1 Получим данные ответа сервера по УРЛ

Допустим нам нужно получить страницу http://wordpress.org, но предварительно нужно проверить вернул ли сервер статус код 200 (OK - "хорошо"):

$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
			[x-nc] => HIT lax 250
		)

	[body] => <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
...
	[response] => Array
		(
			[code] => 200
			[message] => OK
		)

	[cookies] => Array
		(
		)

	[filename] =>

Заметки

Список изменений

С версии 3.6.0 Введена.

Код wp_safe_remote_request() WP 6.4.3

function wp_safe_remote_request( $url, $args = array() ) {
	$args['reject_unsafe_urls'] = true;
	$http                       = _wp_http_get_object();
	return $http->request( $url, $args );
}