@kir_vesp
Web Developer

Почему не копируется php-файл через cURL и как это исправить?

Размер созданного файла в результате равен 0. Не понимаю, что и как надо здесь исправить.
Бинарный режим и запись в строку пробовал. Файл и строка остаются пустыми. Страница существует.
В HTTP-заголовках проблем не нашёл, всё корректно вроде бы, да и в файл записываются.

<?php

$ch = curl_init("http://www.cbonds.info/sandbox/some_source.php");
$fp = fopen("server_data.html", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
echo curl_error($ch);

curl_close($ch);
fclose($fp)
?>


UPD: ушёл читать внимательнее мануалы по cURL и об http-заголовках.
  • Вопрос задан
  • 412 просмотров
Решения вопроса 1
@TsSaltan
curl_setopt($ch, CURLOPT_FOLLOWLOCATION , true); //Скрипт будет следовать перенаправлениям

еще, возможно, придётся куки принимать (CURLOPT_COOKIEFILE, CURLOPT_COOKIEJAR)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Не понимаешь - откажись от тестового задания, и учись.

В HTTP-заголовках проблем не нашёл,
А ты хоть один-то видел?
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
HTTP/1.1 302 Found
...
Location: /sandbox/some_source.php?redirect=1

Тела нет, потому и размер 0, cURL в вашем случае записывает только тело. А тут редирект на страницу /sandbox/some_source.php?redirect=1 указан, естественно, при 302 никакого тела запроса нет и не нужно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы