note 55936 deleted from function.ftp-rawlist by crell

From: Date: Thu, 31 Mar 2022 19:14:20 +0000
Subject: note 55936 deleted from function.ftp-rawlist by crell
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-217894@lists.php.net to get a copy of this message
Note Submitter: tig3r at poczta dot onet dot pl ---- Previous example (by davidknoll at o2 dot co dot uk) works well if ftp_systype() returned "UNIX", but sometimes I am experiencing "Windows_NT". Here is some improvement: <?php function parsed_listing($path) { $conn = ftp_connect(FTP_HOST); ftp_login($conn, FTP_USER, FTP_PASS); $systype = ftp_systype($conn_id); $list = ftp_rawlist($conn, "-a ".FTP_BASE.$path); ftp_close($conn); $i = 0; foreach ($list as $current) { switch ($systype) { case "Windows_NT": ereg("([0-9]{2})-([0-9]{2})-([0-9]{2}) +([0-9]{2}):([0-9]{2})(AM|PM) +([0-9]+|<DIR>) +(.+)",$current,$split); if (is_array($split)) { if ($split[3]<70) { $split[3]+=2000; } else { $split[3]+=1900; } // 4digit year fix $parsed[$i]['isdir'] = ($split[7]=="<DIR>"); $parsed[$i]['size'] = $split[7]; $parsed[$i]['month'] = $split[1]; $parsed[$i]['day'] = $split[2]; $parsed[$i]['time/year'] = $split[3]; $parsed[$i]['name'] = $split[8]; $i++; } break; case "UNIX": default: // etc. break; } } return $parsed; } ?>

« previous php.notes (#217894) next »