За последние 24 часа нас посетили 60294 программиста и 1815 роботов. Сейчас ищут 857 программистов ...

Curl, загрузка не всего файла, а его части.

Тема в разделе "Прочие вопросы по PHP", создана пользователем Poosh, 27 май 2007.

  1. Poosh

    Poosh Активный пользователь

    С нами с:
    26 май 2007
    Сообщения:
    13
    Симпатии:
    0
    Как это реализовать?

    curl_setopt($ch, CURLOPT_RANGE, 5000-6000);
    не работает, почему-то (?). и
    curl_setopt($ch, CURLOPT_RESUME_FROM, 5000);
    не работает (хоть это и не очень приемлимы вариант).

    Может есть возможность решить проблему, или вбить в CURLOPT_HTTPHEADER специальные строчки.
    Или может PHP-страницы не дают возможности такой посылки данных, а только статичные HTML?
     
  2. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    curl_setopt($ch, CURLOPT_RANGE, "5000-6000"); попробуй
     
  3. Poosh

    Poosh Активный пользователь

    С нами с:
    26 май 2007
    Сообщения:
    13
    Симпатии:
    0
    Vitas

    Спасибо за быстрый ответ.
    Не-а, не работает. Как у хостера, так и на localhost'е.
    Выводит все 30кб.

    И вообще да. Лажанулся с кавычками - там ведь `-` :)
     
  4. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Тогда не знаю, у нас уже 5 утра, спать охота... =)
    Затро на свежую голову отвечу... наверно =)
     
  5. Poosh

    Poosh Активный пользователь

    С нами с:
    26 май 2007
    Сообщения:
    13
    Симпатии:
    0
    Мне не к спеху. :)
    Только решить проблему нада когда-нибудь. :)
     
  6. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    если страница динамическая – сервер может проигнорировать этот заголовок.
     
  7. Poosh

    Poosh Активный пользователь

    С нами с:
    26 май 2007
    Сообщения:
    13
    Симпатии:
    0
    Ti

    О чем я и думал.. %(
    Ну может есть вариант? )
     
  8. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    сокеты.

    PHP:
    1. <?php ## "Эмуляция" браузера.
    2. // Соединяемся с Web-сервером localhost. Обратите внимание,
    3. // что префикс "http://" не используется - информация о протоколе
    4. // и так содержится в номере порта (80).
    5. $fp = fsockopen("localhost", 80);
    6. // Посылаем запрос главной страницы сервера. Конец строки
    7. // в виде "\r\n" соответствует стандарту протокола HTTP.
    8. fputs($fp, "GET / HTTP/1.1\r\n");
    9. // Посылаем обязательный для HTTP 1.1 заголовок Host.
    10. fputs($fp, "Host: localhost\r\n");
    11. // Отключаем режим Keep-alive, что заставляет сервер СРАЗУ ЖЕ закрыть
    12. // соединение после посылки ответа, а не ожидать следующего запроса.
    13. // Попробуйте убрать эту строчку - и работа скрипта сильно замедлится.
    14. fputs($fp, "Connection: close\r\n");
    15. // Конец заголовков.
    16. fputs($fp, "\r\n");
    17. // Теперь читаем по одной строке и выводим ответ.
    18. echo "<pre>";
    19. while (!feof($fp))
    20.   echo htmlspecialchars(fgets($fp, 1000));
    21. echo "</pre>";
    22. // Отключаемся от сервера.
    23. fclose($fp);
    24. ?>
    (C) Котеров. PHP5

    после получении нужной инфы грубо обрывать коннект