note 22760 added to function.ftp-rawlist
| From: | php-general at lists dot php dot net | Date: | Fri, 28 Jun 2002 16:57:58 +0000 |
| Subject: | note 22760 added to function.ftp-rawlist | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-32375@lists.php.net to get a copy of this message | ||
I use this and it works fine as far as i know:
$list = ftp_rawlist($ftpconnect, $dir);
foreach($list as $line) {
if(ereg("([-dl])[rwxst-]{9}", substr($line, 0, 10))) {
$systyp = "UNIX";
}
if(substr($line, 0, 5) == "total") {
$dirinfo[0] = -1;
} elseif($systyp == "Windows_NT") {
if(ereg("[-0-9]+ *[0-9:]+[PA]?M? +<DIR> {10}(.*)", $line, $regs)) {
$dirinfo[0] = 1;
$dirinfo[1] = 0;
$dirinfo[2] = $regs[1];
} elseif(ereg("[-0-9]+ *[0-9:]+[PA]?M? +([0-9]+) (.*)", $line, $regs)) {
$dirinfo[0] = 0;
$dirinfo[1] = $regs[1];
$dirinfo[2] = $regs[2];
}
} elseif($systyp == "UNIX") {
if(ereg("([-d])[rwxst-]{9}.* ([0-9]*) ([a-zA-Z]+[0-9: ]*[0-9]) ([0-9]{2}:[0-9]{2})
(.+)", $line, $regs)) {
if($regs[1] == "d") { $dirinfo[0] = 1; } else { $dirinfo[0] = 0; }
$dirinfo[1] = $regs[2];
$dirinfo[2] = $regs[5];
} elseif(ereg("([-d])[rwxst-]{9}.* ([0-9]*) [a-zA-Z]+ [0-9: ]*[0-9] (.+)", $line,
$regs)) {
if($regs[1] == "d") { $dirinfo[0] = 1; } else { $dirinfo[0] = 0; }
$dirinfo[1] = $regs[2];
$dirinfo[2] = $regs[3];
}
}
if(isset($dirinfo)) {
if(($dirinfo[2] == ".") || ($dirinfo[2] == "..")) $dirinfo[0] = -1;
if($dirinfo[0] == 1) {
$dirlist[] = $dirinfo;
} elseif($dirinfo[0] == 0) {
$filelist[] = $dirinfo;
}
}
}
$dirlist[] contains a list of dirs:
[1] size
[2] name
$filelist contains a list of files:
[1] size
[2] name
--
http://www.php.net/manual/en/function.ftp-rawlist.php
http://master.php.net/manage/user-notes.php?action=edit+22760
http://master.php.net/manage/user-notes.php?action=delete+22760
http://master.php.net/manage/user-notes.php?action=reject+22760