Ciao, se il problema sta solo nel tipo di file che non vuoi scaricare puoi aggiungere semplicemente un controllo sul nome del file nel ciclo.
In questo modo se il nome del file non finisce per .gz il ciclo salta al passaggio successivo.codice:foreach ($contents as $file) { if(substr($file, -3) != '.gz') continue; //...resto del codice }
Si può scrivere meglio o con più controlli a seconda di cosa ritorna la lista (che non vedo) ma già così potresti risolvere