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);