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:
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?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); }

Rispondi quotando