Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: SSL ошибка при попытки получить html код facebook
Форумы портала PHP.SU » » Вопросы новичков » SSL ошибка при попытки получить html код facebook

Страниц (1): [1]
 

1. Волк - 26 Мая, 2014 - 11:30:44 - перейти к сообщению
Пытаюсь распарить книго-лицо (facebook) при помощи curl
Пытаюсь вывести html фейсбука
PHP:
скопировать код в буфер обмена
  1. $url = "https://www.facebook.com/";
  2. $ch = curl_init();
  3.  
  4. // Указываем параметры, включая url
  5. curl_setopt($ch, CURLOPT_URL, $url);
  6.  
  7.  
  8. // откуда якобы пришли
  9. $ref="google.com";
  10. curl_setopt($ch, CURLOPT_REFERER, $ref);
  11.  
  12. // выводить заголовки
  13. curl_setopt($ch, CURLOPT_HEADER, 1);
  14. // возвращаем результаты вместо вывода
  15. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16.  
  17.  
  18. // подделываем заголовки (скопипастил из браузера)
  19. $heads = array(
  20.     ':host:www.facebook.com',
  21.     ':method:GET',
  22.     ':path:/',
  23.     ':scheme:https',
  24.     ':version:HTTP/1.1',
  25.     'accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  26.     'accept-encoding:gzip,deflate,sdch',
  27.     'accept-language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4',
  28.     'cache-control:max-age=0',
  29.     'cookie:datr=5cImU7-WOmPzeYsNTEjmjG1A; lu=ggGFVlP99WEBfd3gWowlDSXg; csm=2; fr=0ifTLbBGbIbv5UFGi.AWU9CmvF0GGqz06itzKggxT6_U0.BTJsNc.Ry.FN7.AWV9oQWM; s=Aa5Gupe2OpSvcnAY.BTVljE; c_user=100001730749214; xs=106%3Aa3JjX8wWAXnI8A%3A2%3A1398167748%3A6002; act=1401086867810%2F2; presence=EM401089583EuserFA21B01730749214A2EstateFDsb2F0Et2F_5bDiFA2user_3a1B06750423642A2ErF1C_5dElm2FA2user_3a1B06750423642A2Euct2F1401086195003EtrFnullEtwF1977412708EatF1401089564304G401089583926CEchFDp_5f1B01730749214F23CC; p=-2; wd=1920x628',
  30.     'user-agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36',
  31. );
  32. curl_setopt($ch, CURLOPT_HTTPHEADER, $heads);
  33.  
  34.  
  35. // танец с бубном вокруг ssl (не помогли)
  36. // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
  37. // curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  38.  
  39.  
  40. // получаем HTML в качестве результата
  41. $output = curl_exec($ch);
  42.  
  43.  
  44. // --- Выводим инфу
  45. // показываем ошибки
  46. echo "Ошибки: ";
  47. echo curl_error($ch);
  48. echo "<br>";
  49.  
  50. // был ли HTTP редирект?
  51. if (preg_match("!Location: (.*)!", $output, $matches)) {
  52.     echo "Редирект был на $matches[1]<br>";
  53. }
  54. else
  55. {
  56.     echo "Не было редиректа<br>";
  57. }
  58.  
  59. // выводим инфу
  60. pp( curl_getinfo($ch) );
  61.  
  62.  
  63. // рендер
  64. echo $output;
  65.  
  66. // закрываем соединение
  67.  
  68.  
  69. // функция помощинк которая красиво выодит массивы
  70. function pp($info){
  71.     echo '<pre>';
  72.     print_r($info);
  73.     echo '</pre>';
  74. }
  75.  


Цитата:
Ошибки: SSL certificate problem: unable to get local issuer certificate
Не было редиректа
Array
(
[url] => https://www[dot]facebook[dot]com/
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.109
[namelookup_time] => 0
[connect_time] => 0.046
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[certinfo] => Array
(
)

[primary_ip] => 31.13.81.33
[primary_port] => 443
[local_ip] => 192.168.1.5
[local_port] => 2692
[redirect_url] =>
)

Подскажите пожалуйста как починить, а то я не очень круто в SSL разбираюсь.
2. esterio - 26 Мая, 2014 - 12:31:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
  2. curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
3. Волк - 26 Мая, 2014 - 13:13:34 - перейти к сообщению
esterio пишет:
PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
  2. curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);

Спасибо огромное за помощь

 

Powered by ExBB FM 1.0 RC1