чтение с внешнего пути https по php

Я хочу прочитать несколько фраз с внешнего веб-сайта, протокол которого https. Я делаю это для веб-сайтов с протоколом http с помощью этого кода:

$homepage  = file_get_contents('https://www.examlple.com/');
echo $homepage;

но это не работает для сайтов https. потом я использовал вот этот:

$fp = fsockopen("https://www.example.com/", 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "Data sent by socket");
    $content = "";
    while (!feof($fp)) {  //This looped forever
        $content .= fread($fp, 1024);
    }
   fclose($fp);
   echo $content;
}

но я всегда получаю ошибку:

Не удалось найти транспорт сокетов "http" - вы забыли включить его при настройке PHP? (2)

На самом деле дело в том, чтобы получить статистику моего сайта из аналитики.


person shekoufeh    schedule 02.08.2015    source источник


Ответы (1)


Fsockopen не знает о http, https. Удалите часть http из своего домена и используйте порт SSL для подключения.

См. Пример, это должно работать:

// open ssl connection - dont add "http or https!"
$host = "ssl://" . "example.com";
$port = 443;
$fp = fsockopen($host,$port);

if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "Data sent by socket");
    $content = "";
    while (!feof($fp)) {  //This looped forever
        $content .= fread($fp, 1024);
    }
   fclose($fp);
   echo $content;
}
person opHASnoNAME    schedule 02.08.2015
comment
ошибка просто изменена на: Невозможно найти транспортный протокол сокета ssl - вы забыли включить его при настройке PHP? (160249520) - person shekoufeh; 02.08.2015
comment
Просто раскомментируйте extension = php_openssl.dll в php.ini и перезапустите сервер. - person opHASnoNAME; 02.08.2015
comment
мой веб-сайт является локальным для тестирования. Сделал и перезапустил xampp, в результате ничего не изменилось! - person shekoufeh; 02.08.2015
comment
проверьте это: stackoverflow.com / questions / 1705856 / - person opHASnoNAME; 02.08.2015