get_file_content не работает для https - PullRequest
1 голос
/ 24 февраля 2012

Я использую php и google новые CSE на своем веб-сайте. URL для запроса похож https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures

Соединение https и file_get_content () не удается. Как я могу заставить его работать?
Поскольку мне нужно разместить сайт на некоторых внешних серверах веб-хостинга, мне нужно решение, которое не изменяет конфигурационный файл php или не работает с параметрами по умолчанию, найденными на большинстве сайтов веб-хостинга.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Вы можете использовать curl:

## HTTPS url that you are targeting.
$url = "https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.23 (Windows NT 5.1; U; en)');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

## Below two option will enable the HTTPS option.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2);
$result = curl_exec($ch);
echo $result;
0 голосов
/ 24 февраля 2012

Если вы не можете изменить конфигурацию самостоятельно, обратитесь к хостинг-провайдеру.Скорее всего, это связано с отсутствием openssl в ядре php или при запуске.

Если вы делаете это для кого-то другого, и у вас нет контроля или контакта с хостом («некоторый внешний хост»)объясните ситуацию и помогите им найти подходящий хост с включенными соответствующими функциями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...