Способы отправки HTTP запросов в PHP
PHP - это язык программирования, на котором построен Интернет. Поэтому неудивительно, что в нем существует множество различных способов, которыми можно выполнять HTTP запросы. Далее представлены некоторые из них.
Чтобы просто получить содержимое файла на удаленном сервере можно использовать функцию file_get_contents.
<?php
$sitemap = file_get_contents("http://myrusakov.com/sitemap.xml");
?>
Для чего-то более сложного уже лучше использовать cURL.
<?php
$ch = curl_init("http://myrusakov.ru");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch); // возвращает тело документа
curl_close($ch);
?>
Но вместо CURL также можно использовать контекст потоков PHP:
<?php
$context = array(
'http' => array(
'proxy' => 'proxy:8080',
'request_fulluri' => true,
),
);
$cxContext = stream_context_create($context);
$file = file_get_contents("myrusakov.ru", False, $cxContext);
echo $file;
?>
Но все предыдущие примеры меркнут перед современными библиотеками для работы с HTTP запросами. Они абстрагируют все сложности, и предоставляют удобный интерфейс. Особенно они полезны при разработке REST приложений. Вот посмотрите на пример:
// устанавливаем пакет
composer require romanpitak/php-rest-client
<?php
require_once 'vendor/autoload.php';
use RestClient\Client;
$client = new Client('http://myrusakov.ru');
$request = $client->newRequest('/sitemap.xml');
$response = $request->getResponse();
echo $response->getParsedResponse();
Вот такие методы можно использовать для выполнения HTTP запросов в PHP.
-
- Михаил Русаков
Комментарии (2):
небольшие неточности выше должно быть так // устанавливаем пакет composer require romanpitak/php-rest-client <?php require_once 'vendor/autoload.php'; $client = new \RestClient\Client('https://myrusakov.ru'); $request = $client->newRequest('/sitemap.xml'); $response = $request->getResponse(); echo $response->getParsedResponse();
Ответить
Спасибо, исправлено!
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.