note 55936 added to function.ftp-rawlist
| From: | tig3r at poczta dot onet dot pl | Date: | Thu, 18 Aug 2005 10:31:04 +0000 |
| Subject: | note 55936 added to function.ftp-rawlist | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-93830@lists.php.net to get a copy of this message | ||
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;
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.ftp-rawlist.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+55936
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+55936&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+55936&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+55936&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+55936&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+55936&report=yes&reason=non-english
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+55936&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+55936&report=yes
Search -- http://master.php.net/manage/user-notes.php