Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / file_get_contents читает не все сайты / 25 сообщений из 26, страница 1 из 2
03.05.2020, 17:59
    #39953891
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Народ, приветствую!

Есть такая беда:
Функция "file_get_contents" читает не все сайты.

Есть хаотичный список сайтов. Запускаю чтение в цикле.
Большинство читается нормально. Но попадаются и не читаемые.
Вручную на броузере ( Хром, Лиса и т п) читаются нормально.
Парюсь уже несколько дней.

Прошу помощи!
...
Рейтинг: 0 / 0
03.05.2020, 19:51
    #39953910
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
Но попадаются и не читаемые.
Это как?
...
Рейтинг: 0 / 0
03.05.2020, 20:56
    #39953918
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Это читается
<?php
$html = file_get_contents('https://mail.ru/');
echo $html;
?>

Это вручную через броузер читается ( ссылку копируем в адресную строку )
а через php - нет

<?php
$html = file_get_contents('http://lawweb.usc.edu/library/');
echo $html;
?>
...
Рейтинг: 0 / 0
03.05.2020, 20:57
    #39953919
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
miksoft, выше
...
Рейтинг: 0 / 0
03.05.2020, 21:48
    #39953936
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
а через php - нет
Это не ответ. Термин "не читаемые" не раскрыт.
Не та кодировка? Не тот контент? Ошибка какая-то? Что именно не так?
...
Рейтинг: 0 / 0
04.05.2020, 08:16
    #39953989
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
miksoft, явление довольно интересное.
Запустите на выполнение эти программки и увидите.
Там подвоха нет. Могу сбросить несколько ссылок из списка.
Результат увидите. Сообщение об ошибке не появляется, возвращается false.
Это все согласно документации на file_get_contents. Оно так и есть.

<?php
echo '<br>Start '.time().'<br>';
$url = 'http://lawweb.usc.edu/library/';
echo $url;
$html = file_get_contents($url);
echo $html;
echo '<br>Finish '.time().'<br>';
?>

Но "нечитаемость" отловить можно:

<?php
echo '<br>Start '.time().'<br>';
$url = 'http://lawweb.usc.edu/library/';
echo $url;
$html = file_get_contents($url);
if ($html === false)
{ echo '<br>False<br>'; }
else
{ echo $html; }
echo '<br>Finish '.time().'<br>';
?>

Только мне нужно читать файлы
...
Рейтинг: 0 / 0
04.05.2020, 08:22
    #39953990
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
miksoft
Serge Clause
а через php - нет
Это не ответ. Термин "не читаемые" не раскрыт.
Не та кодировка? Не тот контент? Ошибка какая-то? Что именно не так?

Контент не читается. Не выполняется get - возвращается false
Не могу найти причину.
...
Рейтинг: 0 / 0
04.05.2020, 08:42
    #39953995
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
Не могу найти причину.
Точнее, угадать не можете. Дело в том, что file_get_contents() возвращает false при любой ошибке. Хотите увидеть причину - используйте curl. Там, хотя бы, коды и описания ошибок есть.
...
Рейтинг: 0 / 0
04.05.2020, 11:36
    #39954044
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
vkle
Точнее, угадать не можете. Дело в том, что file_get_contents() возвращает false при любой ошибке. Хотите увидеть причину - используйте curl. Там, хотя бы, коды и описания ошибок есть.

Описания ошибок нет - поэтому приходиться пытаться угадать причину такого поведения функции.
CURL штука хорошая, но, во-первых, он тоже "спотыкается" на этих же сайтах, а, во-вторых, в дальнейшем используется пакет "PHP Simple HTML DOM Parser", неизвестно, как CURL будет с ним сотрудничать.
Поэтому приходится надеяться, что кто-то сталкивался с этой проблемой и победил её.
...
Рейтинг: 0 / 0
04.05.2020, 11:54
    #39954052
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
он тоже "спотыкается" на этих же сайтах
С какой ошибкой?
...
Рейтинг: 0 / 0
04.05.2020, 12:46
    #39954065
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
vkle
Serge Clause
он тоже "спотыкается" на этих же сайтах
С какой ошибкой?

Не сообщает ошибку. Но я не знаток CURL, может что-то делаю не так. Вот прожка, с помощью которой проверяю
<?php
include ("htmlparser.inc");
echo '<br>======== START ==============='.time().'<br>';
$ch = curl_init(); //инициализация
//параметры соединения
curl_setopt($ch, CURLOPT_URL, " https://www.scottlib.org/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch); //получаем HTML сайта
echo $output;
curl_close($ch); //освобождаем память
echo '<br>========== FINISH ============='.time().'<br>';
?>
...
Рейтинг: 0 / 0
04.05.2020, 13:04
    #39954068
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Тынц 1 Пример #1.
Тынц 2 Пример #1 + там же ссылка на страничку сайта курла с расшифровкой/описанием кодов ошибок.
...
Рейтинг: 0 / 0
04.05.2020, 16:06
    #39954098
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
Это читается
<?php
$html = file_get_contents('https://mail.ru/');
echo $html;
?>

Это вручную через броузер читается ( ссылку копируем в адресную строку )
а через php - нет

<?php
$html = file_get_contents('http://lawweb.usc.edu/library/');
echo $html;
?>


99% что там не хочет отвечать роботам, т.е. надо полностью заголовки браузерные давать(КУРЛ)
как второй вариант, ИП банный

P.S. А вообще, правильно рекомендуют, изучай ошибки от КУРЛа
...
Рейтинг: 0 / 0
04.05.2020, 18:35
    #39954133
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
vkle, огромное спасибо! При встрече в Самаре с меня пиво и копченые сомики.
Ошибку удалось выцепить
Unknown SSL protocol error in connection to www.scottlib.org:443
Но, к сожалению, её полное описание отсутствует, только вот в наличии краткое резюме.
Иметь дело с SSL мне не приходилось.
...
Рейтинг: 0 / 0
04.05.2020, 18:40
    #39954138
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
artas
надо полностью заголовки браузерные давать(КУРЛ)

Что значит "полностью"? Вот это "полный" заголовок curl_setopt($ch, CURLOPT_URL, " https://www.scottlib.org/"); ?
Но он тоже дает ошибку
...
Рейтинг: 0 / 0
04.05.2020, 19:24
    #39954152
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
Unknown SSL protocol error in connection to www.scottlib.org:443
По крайней мере, направление поиска уже есть. Кстати, эта ошибка на множестве сайтов или на одном? Если на множестве, тогда можно предположить какие-то проблемы в системе начиная от вполне очевидных, связанных с безнадежно устаревшими библиотеками поддержки SSL и заканчивая сетевыми проблемами.

Т.е. проблема вполне может оказаться далеко за рамками PHP.

Для начала я бы посмотрел на библиотеки, их версии. Может и устаревшие. Еще попробовал бы с той же проблемной машины из консоли wget с ключиком -d (там вместе с заголовками вываливается информация о сертификатах и ходе подключения) и curl -v. Возможно, но не факт, конечно, удастся выцепить более подробную информацию.
...
Рейтинг: 0 / 0
04.05.2020, 20:43
    #39954173
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
vkle, разнообразные ошибки появляются на множестве сайтов. Вот эта ошибка часто выскакивает:
Ошибка curl: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
...
Рейтинг: 0 / 0
04.05.2020, 20:54
    #39954174
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Наверное, действительно старое ПО

OpenSSL Library Version OpenSSL 0.9.8o 01 Jun 2010
OpenSSL Header Version OpenSSL 0.9.8o 01 Jun 2010
...
Рейтинг: 0 / 0
05.05.2020, 10:45
    #39954281
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
Вот эта ошибка часто выскакивает:
Ошибка curl: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Сейчас многие сайты не поддерживают старые варианты шифрования, а новых ваша SSL не умеет.
...
Рейтинг: 0 / 0
05.05.2020, 13:49
    #39954314
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
01 Jun 2010
Пока не трогайте ничего, вот через месячишко пышно отметите юбилей, и уж тогда....
...
Рейтинг: 0 / 0
05.05.2020, 19:05
    #39954389
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause,

Php версия?
...
Рейтинг: 0 / 0
06.05.2020, 06:10
    #39954468
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
дело не в версии пхп
похоже, на "проблемных" сайтах подняли минимальную версию tls до 1.2, поддержка которой появилась в openssl 1.0.1 в 12м году
...
Рейтинг: 0 / 0
06.05.2020, 07:45
    #39954470
Serge Clause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Изопропил
Serge Clause,

Php версия?
7.4.5
...
Рейтинг: 0 / 0
06.05.2020, 10:33
    #39954506
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Дегтярев Евгений
похоже, на "проблемных" сайтах подняли минимальную версию tls до 1.2
Чтобы выяснить точнее, проверьте "проблемные" сайты тут - https://www.ssllabs.com/ssltest/
...
Рейтинг: 0 / 0
06.05.2020, 10:39
    #39954508
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file_get_contents читает не все сайты
Serge Clause
7.4.5
Фигасе, вот как, обратная совместимость есть... Но нафига...
Когда хотел скомпилировать версию 5.6.40 с современной OpenSSL 1.1.1, так и обломался, там структуры разные, а патч найти ну не удалось, если он вообще существует. Пришлось удовольствоваться предыдущей 1.0.1.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / file_get_contents читает не все сайты / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]