- Автор темы
- #1
Добрый вечер.
В общем есть скрипт :
Где $url - ссылка на файл.
Работает он след. образом : коннектится к серверу через прокси, закачивает к себе на сервер нужный файл и уже потом отдает его юзеру.
Так вот последнее время прокси стал работать медленно ( либо на конечном сервере срезали отдачу ), поэтому файл закачаться не успевает и происходит таймаут.
( Таймаут не курла, а видимо апача ).
Так вот вопрос : можно ли сделать так : курл скачивает "кусочек", и сразу же отдает его юзеру ?
То есть не ждать пока скачается файл целиком, а сразу отдавать скачанное юзеру ?
Вроде у СОКЕТОВ так, но сокеты нет возможности использовать ( т.к. прокси-сервер, да и не люблю я их ).
Спасибо.
В общем есть скрипт :
PHP:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 90);
if ( isset($ipsclass->proxy) ) curl_setopt($ch, CURLOPT_PROXY, $ipsclass->proxy);
if ( isset($ipsclass->proxy) && isset($ipsclass->proxytype) ) curl_setopt($ch, CURLOPT_PROXYTYPE, $ipsclass->proxytype);
if ( isset($ipsclass->proxy) && isset($ipsclass->proxyuserpwd) ) curl_setopt($ch, CURLOPT_PROXYUSERPWD, $ipsclass->proxyuserpwd);
$x = curl_exec($ch) or die( curl_error($ch) );
$filesize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
if ( curl_getinfo($ch, CURLINFO_HTTP_CODE) == 404 || curl_getinfo($ch, CURLINFO_HTTP_CODE) == 403 ) header("HTTP/1.0 404 Not Found");
curl_close($ch);
Где $url - ссылка на файл.
Работает он след. образом : коннектится к серверу через прокси, закачивает к себе на сервер нужный файл и уже потом отдает его юзеру.
Так вот последнее время прокси стал работать медленно ( либо на конечном сервере срезали отдачу ), поэтому файл закачаться не успевает и происходит таймаут.
( Таймаут не курла, а видимо апача ).
Так вот вопрос : можно ли сделать так : курл скачивает "кусочек", и сразу же отдает его юзеру ?
То есть не ждать пока скачается файл целиком, а сразу отдавать скачанное юзеру ?
Вроде у СОКЕТОВ так, но сокеты нет возможности использовать ( т.к. прокси-сервер, да и не люблю я их ).
Спасибо.