On Wed, Jan 13, 2010 at 10:50 AM, Rahul S. Johari <sleepwalker@xxxxxxxxxxxxxxxx> wrote: > > On Jan 13, 2010, at 10:40 AM, Rahul S. Johari wrote: > >> >> On Jan 13, 2010, at 9:50 AM, Warren Windvogel wrote: >> >>> On 2010/01/13 04:25 PM, Rahul S. Johari wrote: >>>> >>>> Ave, >>>> >>>> This is what I'm trying to do; I want to read a directory (eg: W:\Test\) >>>> and take all the filenames found in the directory (eg: 1.vox, 2.wav, 3.txt) >>>> and store them in a simple mySQL table. >>>> >>>> Can I do this? >>> >>> I tried to very quickly convert something I've done. It may need some >>> work. Will work in linux env. >>> >>> $origin = "Path" >>> >>> #load file listing into an array >>> $shell = shell_exec("du $origin"); >>> $array = array_reverse(explode("\n",$shell)); >>> $contIdArr = array(); >>> >>> $newArr = array(); >>> foreach($array as $elem){ >>> $newDir = ""; >>> $pathArray = explode("/", $elem); >>> $nodeDepth = count($pathArray); >>> for($count=1; $count<$nodeDepth; $count++){ >>> $newDir = $newDir.$pathArray[$count].'/'; >>> } >>> $newArr[] = '/'.$newDir; >>> } >>> sort($newArr); >>> >>> >>> foreach($newArr as $dir){ >>> $pathArray = explode("/", $dir); >>> >>> $fileListArr = dirList($dir); >>> >>> foreach($fileListArr as $file){ >>> //Insert file($file) and current dir/path($dir) into db >>> } >>> } >>> >>> Kind regards >>> Warren >>> >> >> >> Warren, >> >> I tried using your code and it definitely is very efficient & fast; >> however I'm running into a small problem and I'm not sure how to correct it. >> I'm getting the array with filenames from the folder I'm searching in PLUS >> all the root folders of the machine as well. >> >> This is the code I'm using (note that I'm just echoing the array right >> now; I'll move to inserting data into mySQL after): >> >> function dirList ($directory) { >> $results = array(); >> $handler = opendir($directory); >> while ($file = readdir($handler)) { >> if ($file != '.' && $file != '..') >> $results[] = $file; >> } >> closedir($handler); >> return $results; >> } >> >> $origin = "/Library/WebServer/Documents/folder1/folder2/images/"; >> >> #load file listing into an array >> $shell = shell_exec("du $origin"); >> $array = array_reverse(explode("\n",$shell)); >> $contIdArr = array(); >> >> $newArr = array(); >> foreach($array as $elem){ >> $newDir = ""; >> $pathArray = explode("/", $elem); >> $nodeDepth = count($pathArray); >> for($count=1; $count<$nodeDepth; $count++){ >> $newDir = $newDir.$pathArray[$count].'/'; >> } >> $newArr[] = '/'.$newDir; >> } >> sort($newArr); >> >> foreach($newArr as $dir){ >> $pathArray = explode("/", $dir); >> $fileListArr = dirList($dir); >> >> foreach($fileListArr as $file){ >> echo $file."<BR>"; >> //Insert file($file) and current dir/path($dir) into db >> } >> } >> >> >> As an output ... i get a list of all the files in the "images" folder >> preceeded by the all the list of root folders on my machine!! How do I >> eliminate the list of root folders? > > > Nevermind, I was looking at the wrong output. I got it!! I've got all my > filenames in my $fileListArr[] array!! > Now I just to get the values in a mySQL table. > > > --- > Rahul Sitaram Johari > Founder, Internet Architects Group, Inc. > > [Email] sleepwalker@xxxxxxxxxxxxxxxx > [Web] http://www.rahulsjohari.com > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > consider stacking the insert statements in sql to allow for a certain number of inserts in one connect. insert into my_table (field1, field2...fieldn) values('field1','field2'...fieldn),('field1','field2'...fieldn),('field1','field2'...fieldn),('field1','field2'...fieldn)... keep to something like 100 to avoid buffer overflows and it should make the inserts much faster -- Bastien Cat, the other other white meat -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php