note 47713 added to function.ftp-rawlist
| From: | greg at upsdn dot net | Date: | Fri, 26 Nov 2004 06:55:30 +0000 |
| Subject: | note 47713 added to function.ftp-rawlist | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-81048@lists.php.net to get a copy of this message | ||
The previous regular expression(by Jonathan Almarez,ergye at yahoo dot com and guru at virusas dot
lt) is very good.But i found it does not take into account for directories(number>9)
Change [0-9] to [0-9]*
The code below not only parses:
drwxrwxr-x 9 msik ia 4096 Nov 5 14:19 Group3
It also parses:
drwxrwxr-x 19 msik ia 4096 Nov 5 14:19 Group3
3
drwxrwxr-x 119 msik ia 4096 Nov 5 14:19 Group3
3
0 = file
1 = directory
2 = simlink
<?php
function itemize_dir($contents) {
foreach ($contents as $file) {
if(ereg("([-dl][rwxst-]+).* ([0-9]*) ([a-zA-Z0-9]+).* ([a-zA-Z0-9]+).* ([0-9]*)
([a-zA-Z]+[0-9: ]*[0-9])[ ]+(([0-9]{2}:[0-9]{2})|[0-9]{4}) (.+)", $file, $regs)) {
$type = (int) strpos("-dl", $regs[1]{0});
$tmp_array['line'] = $regs[0];
$tmp_array['type'] = $type;
$tmp_array['rights'] = $regs[1];
$tmp_array['number'] = $regs[2];
$tmp_array['user'] = $regs[3];
$tmp_array['group'] = $regs[4];
$tmp_array['size'] = $regs[5];
$tmp_array['date'] = date("m-d",strtotime($regs[6]));
$tmp_array['time'] = $regs[7];
$tmp_array['name'] = $regs[9];
}
$dir_list[] = $tmp_array;
}
return $dir_list;
}
$buff = ftp_rawlist($cid, "/");
$items = itemize_dir($buff);
?>
----
Manual Page -- http://www.php.net/manual/en/function.ftp-rawlist.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+47713
Delete -- http://master.php.net/manage/user-notes.php?action=delete+47713&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+47713&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+47713&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+47713&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+47713&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+47713&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+47713&report=yes
Search -- http://master.php.net/manage/user-notes.php