Как отправить POST-запрос на другой сайт без cUrl?

Для отправки POST-запроса на другой сайт без использования cUrl вам нужно использовать функцию file_get_contents() в сочетании с потоковым контекстом.

Для этого необходимо создать ассоциативный массив $options, который будет содержать различные настройки для вашего запроса. Внутри массива вы можете определить заголовки, метод запроса, данные, а также другие параметры, которые требуются для правильного выполнения запроса.

Ниже представлен пример кода, демонстрирующего отправку POST-запроса на другой сайт без использования cUrl:

<?php
// URL для отправки запроса
$url = 'https://example.com/api';

// Данные, которые нужно отправить
$data = array(
    'param1' => 'value1',
    'param2' => 'value2'
);

// Определение заголовков запроса
$headers = array(
    'Content-type: application/x-www-form-urlencoded',
    'Authorization: Bearer your_token'
);

// Настройки для контекста потока
$options = array(
    'http' => array(
        'header'  => implode('rn', $headers),
        'method'  => 'POST',
        'content' => http_build_query($data)
    )
);

// Создание контекста потока
$context  = stream_context_create($options);

// Отправка POST-запроса
$result = file_get_contents($url, false, $context);

// Проверка результата
if ($result === FALSE) {
    echo 'Ошибка отправки запроса';
} else {
    echo 'Успешный запрос';
    // Обработка ответа от сервера
}
?>

В этом примере мы использовали функцию http_build_query() для преобразования массива данных в строку запроса формата x-www-form-urlencoded. Также, мы определили заголовки для запроса в виде массива и объединили их с помощью implode(), чтобы получить одну строку заголовков.

Затем мы создали массив $options, где определили метод запроса, заголовки и данные для отправки, а затем создали контекст потока с этими настройками с помощью функции stream_context_create().

Наконец, мы использовали функцию file_get_contents(), передавая ей URL и созданный контекст потока. В результате запроса мы получаем ответ от сервера, который мы можем обработать далее.