curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
на самом деле должно быть:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
, поэтому curl знает, что он должен возвращать данные, а не выводить их.
Кроме того, иногда вам приходится выполнять дополнительную работучтобы получить сертификаты SSL, принятые curl:
Использование cURL в PHP для доступа к сайтам, защищенным HTTPS (SSL / TLS)
РЕДАКТИРОВАТЬ:
Учитывая ваше использование, вытакже следует установить для CURLOPT_HEADER значение false, как рекомендовано Alix Axel.
Что касается SSL, я надеюсь, что вам потребуется время, чтобы прочитать предложенную мной ссылку, поскольку существует несколько различных способов обработки SSL и исправление.Рекомендуется, чтобы Аликс был в порядке, если данные не являются конфиденциальными, но это отрицательно сказывается на безопасности, поскольку заставляет CURL принимать ЛЮБЫЕ СЕРВЕРНЫЕ УСЛУГИ.