Re: a Directory Crawler
| From: | Sek-Mun Wong | Date: | Mon, 22 Sep 2003 23:36:58 +0000 |
| Subject: | Re: a Directory Crawler | ||
| References: | 1 2 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-21507@lists.php.net to get a copy of this message | ||
ooops, you need to change the
"$this->recurseDirectory(getcwd().'/'.$file, getcwd(), $files)"
to just plain
"recurseDirectory(getcwd().'/'.$file, getcwd(), $files)"
from inside the function if you're not planning on using this function from
within a class...
sorry about that only spotted it after I posted.
"Sek-Mun Wong" <sekmun@connectingspace.com> wrote in message
news:20030922233218.66048.qmail@pb1.pair.com...
> Ron,
>
> I've got a function that does it for directories, and I've just quickly
> modified it for you to do what you've stated, you can modify it if there
is
> a problem.
>
> try this:
>
>
> $files = recurseDirectory("/home/mydir", null, null);
>
> foreach ($files as $i => $filename) {
> print "procesed $i $filename\n";
> }
>
>
>
//--------------------------------------------------------------------------
> ----
> function recurseDirectory($currentdir, $startdir=NULL, $files=array())
>
>
//--------------------------------------------------------------------------
> ----
> {
> chdir ($currentdir);
> // remember where we started from
> if (!$startdir) {
> $startdir = $currentdir;
> }
> $d = opendir (".");
>
> //list the files in the dir
> while ($file = readdir ($d)) {
> if ($file != ".." && $file != ".") {
> if (is_dir ($file)) {
> // If $file is a directory take a look inside
> $files = $this->recurseDirectory(getcwd().'/'.$file,
> getcwd(), $files);
> //$files[] = $file; // add this if you want to output
> dir name
> }
> else {
> // If $ file is not a directory then add it to our output
> array
> $files[] = $file;
> if (strstr($file,".schema")) { // or u can use
> preg_match if more comfortable
> // fopen file etc etc, insert your code here
> }
>
> }
> }
> }
> closedir ($d);
> chdir ($startdir);
> return $files;
> }
>
> "Ron Herhuth" <Ron.Herhuth@tatumpartners.com> wrote in message
> news:4e0c01c38122$76b60f60$f25d2981@tatumlink.com...
> I'm stuck.
>
> I have been attempting to put together a script with little tidbits I've
> found in the manual but I'm unable to figure out how to do this.
>
> Basically I have a directory structure on my server that runs many levels
> deep and wide. In the directories there are several files with the
> extension name ".schema" I would like to have my script go through and
> open each of these files (they are text files) and add the contents to a
> variable which I will then store in a database. I know how to display the
> contents of a directory, as well as open and read text files...and write
> to a database. The problem I'm having is building the component that
> traverses the directory structure pulling back all the files. I can make
> it read a single directory at a time but I'm at a loss to tell it how to
> navigate through the directories.
>
> This app is not for anything malicious, but I need a dynamic archive of
> all the schemas and if I get brave I want to write an extraction tool to
> extract the SQL queries from the schemas and catagorize them for future
> use.
>
> Thanks,
> Ron