Здравствуйте! Допустим есть файл на 1000 строк; 1 строка 1 домен - задача, получить заголовки. Так долго: PHP: <? $headers = get_headers($url, 1); ... ?> и так долго: PHP: <? file_get_contents($urldomain); $reprint = $http_response_header[0]; ... ?> Есть вариант использовать cURL, но он не желательный... Как можно ускорить процесс? Есть какие-то другие методы?
Если пропускная способность позволяет, то сделать параллельно несколько запросов, а не последовательно
@denis01, относительное решение нашлось здесь же))) Оставляем: PHP: <? file_get_contents($urldomain); $reprint = $http_response_header[0]; ... ?> И берем отсюда: код тайм аута PHP: <? $ctx = stream_context_create(array( 'http' => array( 'timeout' => 1 ) ) ); file_get_contents($urldomain, 0, $ctx); $reprint = $http_response_header[0]; ... ?> Разница 140 секунд без тайм аута и 23 секунды с ним на 50 адресов
Создай цыкл по JS через ajax запусти все строки и хай комп тормознет зато запишешь все. Ускорить ты не сможешь только если делать параллельный cURL Правильно настраиваешь cURL радуйся жизни я с ним столько сайтов распарсил. cURL загони в функцию и все он тебе все сам от тарабанит только не забывай про апачь и SQL если используешь надо будет увеличивать таймауты
biryukovm, это спортивный интерес)) Вопщем ряд тестов, особенно с заокеанскими хостами, убедительно показал, что нужно отдавать юзерагента stream_context_create - добрать до комплекта. В среднем 3500 секунд на 1500 хостов... сойдет