Witam,
Posiadam konto premium w serwisie megaupload.com.
Chcę napisać skrypt który będzie mi pobierał pliki z w/w serwisu na serwer.
Po podaniu adresu do pliku ( www.megaupload.com/?d=... ) następuje przekierowanie na odpowiedni serwer z plikiem ( np: www101.megaupload.com/... ), które jest nieskończone i albo wyskakuje timeout czasu wykonywania skryptu PHP lub zamulenie parsera ( jeśli dam nieograniczony czas wykonania ).
Czym to jest spowodowane ?
Funkcja wykonująca połączenie ( pobranie samych nagłówków ):
function curl( $url )
{
$curl = curl_init( $url );
curl_setopt( $curl, CURLOPT_NOBODY, TRUE );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt( $curl, CURLOPT_HEADER, TRUE );
curl_setopt( $curl, CURLOPT_COOKIE, 'user=hash_identyfikacyjny; l=pl' );
curl_setopt( $curl, CURLOPT_TIMEOUT, 15 );
curl_setopt( $curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8' );
curl_setopt( $curl, CURLOPT_ENCODING , '' );
curl_setopt
( $curl, CURLOPT_HTTPHEADER
, array( 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7',
'Accept-Language: pl,en-us;q=0.7,en;q=0.3',
'Connection: keep-alive',
'Keep-Alive: 300'
) );
$headers = trim( curl_exec
( $curl ) ); curl_close( $curl );
$headers = parseHeaders( $headers );
if( isset( $headers['location'] ) ) {
return curl( $headers['location'] );
}
return $headers;
}
Funkcja parseHeaders to własna implementacja http_parse_headers;