Почему не получается скачать файл по этой ссылке средствами PHP (403 ошибка)? Как исправить код, чтобы он работал?

Рейтинг: 0Ответов: 0Опубликовано: 26.06.2023

Вот мой код:

<?php
$url = 'https://www.vseinstrumenti.ru/instruction/1486389_manual.docx';

ini_set('user_agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36');
$contextOptions = [
    "ssl" => [
        "verify_peer" => false,
        "verify_peer_name" => false,
        'allow_self_signed' => true
    ],
];
$downloadedFile = file_get_contents($url, false, stream_context_create($contextOptions));

if ($downloadedFile === false) {
    $text = 'Ошибка при скачивании файла по ссылке: ' . $url;
    $headers = get_headers($url, 1);
    if (!empty($headers[0])) {
        $code = str_replace('HTTP / 1.1 ', '', $headers[0]);
        $text .= ', вот код ответа: ' . $code;
    }
    echo $text;
} else {
    echo 'Все отлично';
}

Мне выводится сообщение:

Ошибка при скачивании файла по ссылке: https://www.vseinstrumenti.ru/instruction/1486389_manual.docx, вот код ответа: HTTP/1.1 403 Forbidden

Если я захожу на страницу через браузер, то никаких ошибок нет, документ docx отдается. То есть это не блокировка по IP. Я пробовал менять useragent в коде - не помогло. То есть это не блокировка по Useragent.

Как мне исправить мой код, чтобы он работал?

Ответы

Ответов пока нет.