Ciao a tutti. Ho un problema, cercherò di spiegarlo al meglio.
Io ho uno script che deve scaricare più di 10 file. Io al momento uso un ciclo for in questo modo:
codice:
$host = 'www.sito.com';
$dir_locale = 'cartella/';
for ($i = 0; $i < 25; $i++) //ovviamente il 25 cambia
//mi connetto e chiedo il file
$fp = fsockopen($host, 80);
fputs ($fp, "GET /cartella/file${i}.html HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n");
//leggo il file
$file = '';
while (!feof($fp))
{
$file .= fread($fp, 128);
}
//scrivo il file
$fp2 = fopen($dir_locale."file${i}.html", 'w');
fwrite($fp2, $file);
fclose($fp2);
//chiudo la connessione
fclose($fp);
}
Ora, il codice funziona bene, scarica i file, il problema è che è molto lento. Non c'è un modo per aprire una sola connessione al server prima del for, fare la richiesta del file, leggerlo, e poi all'iterazione successiva del ciclo rifare la richiesta del file, e poi chiudere la connessione al server solo alla fine?