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 :: Версия для печати :: Помогите с cURL
Форумы портала PHP.SU » » Вопросы новичков » Помогите с cURL

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

1. tirro - 21 Июня, 2019 - 22:56:20 - перейти к сообщению
Всем привет! Пытаюсь парсить курсы с обенников для мониторинга. На некоторых сайтах работает без проблем, на некоторых возвращает пустую страницу.

Вот этот урл https://xebit[dot]ru/export-rates-xml - работает!
Вот этот урл https://ru-change[dot]cc/request-exp[dot][dot][dot]txml[dot]xml?lang=ru - НЕ РАБОТАЕТ!

Перепробовал все что описано в интернете: устанавливал куки, эмитировал браузер, включал проверку SSL, таймауты, кодировки. Ничего не помогает.

Я не очень хорошо разбираюсь как проанализировать ответы сервера и что куда перенаправляет, поэтому прошу помощи. Кто понимает в чем может быть проблема?

PHP:
скопировать код в буфер обмена
  1.  
  2. $ch = curl_init();
  3.  
  4.         curl_setopt($ch, CURLOPT_URL, $url);
  5.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  7.         curl_setopt($ch, CURLOPT_HEADER, true);
  8.  
  9.         $output = curl_exec($ch);
  10.         $info = curl_getinfo($ch);
  11.         curl_close($ch);
  12.        
  13.         echo $output;
  14.        
  15.         foreach ($info as $key => $value) {
  16.                 echo "{$key} => {$value}";
  17.                 echo '<br>';
  18.         }
  19.  
2. Vladimir Kheifets - 22 Июня, 2019 - 20:25:14 - перейти к сообщению
tirro пишет:
Всем привет! Пытаюсь парсить курсы с обенников для мониторинга. На некоторых сайтах работает без проблем, на некоторых возвращает пустую страницу.

Вот этот урл https://xebit[dot]ru/export-rates-xml - работает!
Вот этот урл https://ru-change[dot]cc/request-exp[dot][dot][dot]txml[dot]xml?lang=ru - НЕ РАБОТАЕТ!

Перепробовал все что описано в интернете: устанавливал куки, эмитировал браузер, включал проверку SSL, таймауты, кодировки. Ничего не помогает.

Я не очень хорошо разбираюсь как проанализировать ответы сервера и что куда перенаправляет, поэтому прошу помощи. Кто понимает в чем может быть проблема?

PHP:
скопировать код в буфер обмена
  1.  
  2. $ch = curl_init();
  3.  
  4.         curl_setopt($ch, CURLOPT_URL, $url);
  5.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  7.         curl_setopt($ch, CURLOPT_HEADER, true);
  8.  
  9.         $output = curl_exec($ch);
  10.         $info = curl_getinfo($ch);
  11.         curl_close($ch);
  12.        
  13.         echo $output;
  14.        
  15.         foreach ($info as $key => $value) {
  16.                 echo "{$key} => {$value}";
  17.                 echo '<br>';
  18.         }
  19.  

Добрый день!
Не совсем понятно, что не работает во втором случае.
Выдаётся XML, как и в первом случае.
Если же же Вы хотите увидеть нечто неприятное, попробуйте изменить код так:
Спойлер (Отобразить)
Удачи!
3. tirro - 24 Июня, 2019 - 16:04:55 - перейти к сообщению
Большое спасибо!

Ваш код показал код ошибки (35 - проблемы с SSL). Теперь стало понятно куда копать. Отключение проверки SSL в опциях курла не помогало.

В итоге оказалось, что установленная на сервере OpenSSL была устаревшая и через это возникал конфликт. Перешел на хостинге на обновленный сервер и проблема исчезла.
Еще раз спасибо!

 

Powered by ExBB FM 1.0 RC1