note 47713 added to function.ftp-rawlist

From: 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

« previous php.notes (#81048) next »