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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Почему не качается страница через CURL. Помогите разобраться
Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
Есть функция (см ниже) через которую качаются страницы с https, но страницы одного противного сайта никак нихотят скачиваться, не могу понять почему. Напишите, плиз, что нужно поправить, чтобы заработало?
Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
file_get_contents отродясь не качал ничего с https
у меня контента никакого нет, ни через file_get_contents ни через мою функцию, ни на локалке, ни на реальном сайте. И проблема именно в этом сайте, т.к. с других качается нормально.
Но так как через браузер на сайт к ним зайти можно, делаем выводы, что как то всё таки можно страницу скачать. Давайте вернёмся к способу через курл
andrewkard
Отправлено: 30 Октября, 2019 - 12:15:31
Участник
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
IOpeH пишет:
file_get_contents отродясь не качал ничего с https
Цитата:
В файле php.ini вы должны добавить эти строки, если они не существуют:
extension=php_openssl.dll
allow_url_fopen = On
Я же писал что проверил, у меня контент пришел.
По поводу curl, уберите глушилку ошибок @, смотрите что в https://www.php.net/manual/ru/function.curl-error.php, добавьте опцию curl_setopt($curl, CURLOPT_HEADER, true);
дебажте
IOpeH
Отправлено: 30 Октября, 2019 - 18:58:58
Частый гость
Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
andrewkard сама функция curl_file_get_contents ошибок не выдает, даже если глушилки снять. Если включить вывод заголовков CURLOPT_HEADER, то с elfidel.com даже заголовков не приходят.
curl_errno() показывает 35 ошибку
Цитата:
CURLE_SSL_CONNECT_ERROR (35)
A problem occurred somewhere in the SSL/TLS handshake. You really want the error buffer and read the message there as it pinpoints the problem slightly more. Could be certificates (file formats, paths, permissions), passwords, and others.
curl_error() выдаёт такую штуку: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Попробовал попереключать CURLOPT_SSLVERSION, выдаёт такие результаты
1 -
Цитата:
error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version
2 -
Цитата:
Unknown SSL protocol error in connection to elfidel.com:443
Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
andrewkard а для курла это тоже чтоль надо?
Я пробовал включить этот модуль, но при старте сервера там ошибки вылазят, поэтому я забил на такой способ. Другие то сайты качаются через курл с https протоколом
LIME
Отправлено: 02 Ноября, 2019 - 16:27:58
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
IOpeH пишет:
а для курла это тоже чтоль надо?
по идее нет
Пыховый курл юзает curllib или она там называется
IOpeH пишет:
Другие то сайты качаются через курл с https протоколом
ну значит ты дурачек?
Вопрос поставлен о курле а оказывается дело не в нем а в контенте скорее всего.
Давай уже мозги включай.
Я не чтобы обидеть а чтобы пнуть побольнее. (Добавление) andrewkard неее
Подумай
Это расширение надо для сокетов
Курл свою библу юзает напрямую (Добавление)
Но это не точно
IOpeH
Отправлено: 02 Ноября, 2019 - 22:02:52
Частый гость
Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
покрутил я ещё с опциями и получается что если выставить CURLOPT_SSLVERSION в 2, и начать менять CURLOPT_SSL_CIPHER_LIST он начинает жаловаться, что не удалось установить список шифров. А если "CURLOPT_SSL_CIPHER_LIST" оставить по умолчанию, то получаем, как уже я выше писал "Unknown SSL protocol error in connection to elfidel.com:443". Мне думается что это верный пусть, вот только как узнать что там за неизвестная ошибка? я без понятия
LIME
Отправлено: 03 Ноября, 2019 - 01:28:48
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
IOpeH какая-то хрень кривая на их серваке похоже
Попробуй ручками через сокет получить ответ если очень надо.
Но сначала я бы проверил свою курл либу. Попробуй на другой машине, желательно с последней ос и с курлой из оф репа а не руками собранной. (Добавление)
И еще попробуй первым делом получить курлом из терминала. Как сделать гугли. Инфы масса. Дело несложное. Курл это не пых - это библиотека и ей можно пользоваться из линуксовой консоли. Ну или виндовой если ты ламер))
TheCrystalMethod
Отправлено: 08 Апреля, 2024 - 15:31:39
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2024
Помог: 0 раз(а)
IOpeH пишет:
andrewkard сама функция curl_file_get_contents ошибок не выдает, даже если глушилки снять. Если включить вывод заголовков CURLOPT_HEADER, то с elfidel.com даже заголовков не приходят.
curl_errno() показывает 35 ошибку
Цитата:
CURLE_SSL_CONNECT_ERROR (35)
A problem occurred somewhere in the SSL/TLS handshake. You really want the error buffer and read the message there as it pinpoints the problem slightly more. Could be certificates (file formats, paths, permissions), passwords, and others.
curl_error() выдаёт такую штуку: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Попробовал попереключать CURLOPT_SSLVERSION, выдаёт такие результаты
1 -
Цитата:
error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version
2 -
Цитата:
Unknown SSL protocol error in connection to elfidel.com:443
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
что с этим "добром" делать я без понятия, подскажите, кто знает
Актуальность с ответом автору темы наверное чутка протухла, но может кто так же столкнется с похожей проблемой мой возможно поможет
У меня такая же проблема была при написани небольшого парсера для ведения статистики по неожиданных откатах контента страниц. Перебирал много разных вариантов сочетаний опций ssl для curl на РНР.
Так как простые варианты опций веерсии ssl проверки не давали результат, решил узнать а какую же версию поддерживает сервер моего сайта.
Проверка показала не свежесть продукта Нажмите для увеличения
В итоге перебора доступных комбинаций для версии ssl нашелся вариант при котором сервер понимал что от него хотят и как общаться:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.