Задать вопрос

File_get_contents не получает страницу полностью?

file_get_contents не получает страницу полностью, а только часть страницы. В чем может быть проблема?
  • Вопрос задан
  • 8603 просмотра
Подписаться 6 Оценить 4 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Stdit
@Stdit
Сервер отдаёт только первый чанк, видимо криво настроен. Её в текстовой форме не может скачать ни curl, ни wget. Браузер получает полную страницу потому, что использует gzip. Чтобы получить полную страницу через gzip на php, надо сделать что-то такое:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://nightout.ru/photoreport/alpen-grotte/after-party-zolotoi-sostav-0?page=0');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding: gzip'));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
echo gzinflate(substr($result,10));
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
dali
@dali
не мучайтесь с file_get_contents, используйте cURL для получения страницы, у меня он даже быстрее отрабатывает чем file_get_contents. Перешел на cURL после ошибок вида PHP Warning: file_get_contents('...'): failed to open stream: Connection timed out in /var/www/…
Ответ написан
Sincous
@Sincous
Использовал file_get_contents, fsockopen, потом как заметили выше перешел на cURL, и даже это не решило проблему. (использовал на скачке изображений из вконтакте).
Поэтому для страниц где не нужна авторизация а нужно лишь получение контента рекоменлую просто
<?php
$l = file($url);
$content = implode('', $l);
?>
Ответ написан
Meliborn
@Meliborn
В отсутствии подробностей в вопросе.
Ответ написан
1. www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen?
2. error_reporting(E_ALL); ini_set('display_errors', true) // это так, на авось

3. Плохой протокол не ХТТП 1.1 а 1.0? Transfer-Encoding:chunked? www.php.net/manual/en/context.http.php «PHP prior to 5.3.0 does not implement chunked transfer decoding.».
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽