CURLOPT_RETURNTRANSFER установлен на true, не работает на сервере хостинга

Я пытаюсь обработать результат из $data = curl_exec($ch); вместо того, чтобы печатать его на экране. Для этого я установил опцию CURLOPT_RETURNTRANSFER в true следующим образом:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

На моем локальном сервере это работает так, как ожидалось, но когда я помещаю тот же файл онлайн на свой сервер, он не работает.

Когда я устанавливаю CURLOPT_RETURNTRANSFER в false, он работает.

Что я делаю неправильно?

Ответ 1

Если вы установите CURLOPT_RETURNTRANSFER на true или 1, тогда возвращаемое значение из curl_exec будет фактическим результатом успешной операции. Другими словами, он не вернет true успех. Хотя он будет возвращать FALSE при сбое.

Как описано в разделе "Возвращаемые значения" в curl-exec справочной странице PHP: http://php.net/manual/function.curl-exec.php

Вы должны включить параметр CURLOPT_FOLLOWLOCATION для перенаправления, но это будет проблемой, если ваш сервер находится в safe_mode и/или open_basedir, что может вызвать проблемы с завихрением.

Ответ 2

работать как шарм, спасибо (

Ответ 3

Просто попробуйте эту строку:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

после

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);