2009
03.12
03.12
The Function
func.parse_ftp_rawlist.php (1.3 KiB, 160 hits)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | // :: JaZz phpFramework // :: V1.1 // :: 13/03/2009 15:35:22 function parse_ftp_rawlist($List, $Win = false) { $Output = array(); $i = 0; if ($Win) { foreach ($List as $Current) { ereg('([0-9]{2})-([0-9]{2})-([0-9]{2}) +([0-9]{2}):([0-9]{2})(AM|PM) +([0-9]+|) +(.+)', $Current, $Split); if (is_array($Split)) { if ($Split[3] < 70) { $Split[3] += 2000; } else { $Split[3] += 1900; } $Output[$i]['isdir'] = ($Split[7] == ''); $Output[$i]['size'] = $Split[7]; $Output[$i]['month'] = $Split[1]; $Output[$i]['day'] = $Split[2]; $Output[$i]['time/year'] = $Split[3]; $Output[$i]['name'] = $Split[8]; $i++; } } return !empty($Output) ? $Output : false; } else { foreach ($List as $Current) { $Spli = preg_split('[ ]', $Current, 9, PREG_SPLIT_NO_EMPTY); if ($Split[0] != 'total') { $Output[$i]['isdir'] = ($Split[0] {0} === 'd'); $Output[$i]['perms'] = $Split[0]; $Output[$i]['number'] = $Split[1]; $Output[$i]['owner'] = $Split[2]; $Output[$i]['group'] = $Split[3]; $Output[$i]['size'] = $Split[4]; $Output[$i]['month'] = $Split[5]; $Output[$i]['day'] = $Split[6]; $Output[$i]['time/year'] = $Split[7]; $Output[$i]['name'] = $Split[8]; $i++; } } return !empty($Output) ? $Output : false; } } |
Usage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // set up basic connection $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // get the file list for / $buff = ftp_rawlist($conn_id, '/'); // OUR LITTLE PARSER $a = parse_ftp_rawlist($buff, false); var_dump($a); // close the connection ftp_close($conn_id); |
func.parse_ftp_rawlist.php (1.3 KiB, 160 hits)
Have fun!
Andreas Glaser aka JaZz
For http://ftp.microsoft.com this is work incorrectly for folders. Their format for folder is
“05-09-07 12:02PM bussys”.
In your code, the folder name is ” bussys”
< DIR > cut