napisalem szybciutko mala fukcje parsujaca to co zwraca ftp_rawlist
<?php function raw_files_list($path='.') { if ( ! $this->_is_conn()) return false; if ( ! $list = @ftp_rawlist($this->conn_id, $path)) { if ( true == $this->debug) $this->_error('ftp_unable_to_retrive_rawlist'); return false; } /* the first two records are '..' and '.' */ for ( $i=2; $i<$_count; $i++ ) { if ( ! preg_match('# ([0-9]{1,99}) [a-zA-Z]{3,3} [0123]{1,1}[0-9]{1,1} [012]{1,1}[0-9]{1,1}:[0-9]{2,2} (.*?)$#', $list[$i], $out)) { error('blad funkcj parsujacej'); } if ( $out[1] == '4096' ) { /* for 99,99% it is a dir.. */ $dirs[] = $out[2]; } else { $files[] = $out[2]; } } } ?>
Niestety bazuje ona na tym, ze serwer twierdzi iż wielość katalogu to zawsze 4096, tak wiec plik o wielkosci rownej 4096 zostanie przez moja funcje rozpoznany jako katalog... rówież wyrazenie regularne nie jest doskonale i przy odpowiedniej nazwie pliku wywali sie, na szczecie prawdopodobienstwo wystapienia takiej nazwy w przyrodzie jest bliskie 0

czy da sie to zrobic lepiej?