NYCPHP Meetup

NYPHP.org

[nycphp-talk] Search of directories and files on my web server

Edward Potter edwardpotter at gmail.com
Thu Aug 16 17:49:24 EDT 2007


sorry, did not see that second post.

man grep   :-)



On 8/16/07, Edward Potter <edwardpotter at gmail.com> wrote:
> Yipes,  grep -r  'foo'    *     [or something like that!]
>
> :-)  ed
>
> On 8/16/07, Aaron Fischer <agfische at email.smith.edu> wrote:
> > Greetings,
> >
> > I am working on a little script that will start at a specified
> > directory on my web server and then proceed to look through all files
> > and sub-folders for an instance of text located in a file.  (This is
> > a follow-up of sorts to a previous post of mine from a week or two ago.)
> >
> > I got the code to work fine for searching through one directory.
> > However, my thought was that in order to drill down through an
> > undefined number of sub-folders I would need to implement a recursive
> > function.  The recursive "depth first" search function I made is not
> > working as expected and so far I haven't been able to figure out what
> > or how I need to tweak it.
> >
> > I'm completely squeezed for time at work so I'll continue to bang
> > away at it but I thought I would post it here in the hopes that some
> > of our rockets scientists can show me the error of my ways.  I'm
> > guessing this will be a rather simple problem for some folks on the
> > list.
> >
> > So here goes.  Listed below are my algorithm and code.  I'm looking
> > forward to finding out where I'm going wrong.  =)
> >
> > My algorithm:
> > 1) Set the directory that the script will start in.
> > 2) Open that directory and read all files and folders in that directory.
> > 3) While each item is being read, check it.  If the item is a
> > directory, call the recursive search in order to drill down further.
> > If the item is a file, open the file and search for the text string
> > that I am trying to locate.
> >
> > My code (with comments):
> >
> > <?php
> > $path='/home/usr/account';
> > search($path);
> >
> > function search($path)
> > {
> >         $dir=opendir($path);
> >         // browse all files and folders in the current directory
> >         while (false !== ($item=readdir($dir))) {
> >                 // if the item is a directory, drill down using a recursive call to
> > the search function
> >                 if (is_dir($item) && $item !='.' && $item!='..') {
> >                         search($path . '/' . $item);
> >                 }
> >                 if (is_file($item)) {
> >                         $file=file($item);
> >                         $lines=count($file);
> >                         for ($i=0; $i<$lines; $i++) {
> >                                 if (strstr(($file[$i]), 'text to search for')) {
> >                                         echo 'Search string found on line ' . $i . ' in file ' . $path .
> > '/' . $item . '<br />';
> >                                 }
> >                         }
> >                 }
> >         }
> >         closedir($dir);
> > }
> > ?>
> >
> > Cheers,
> >
> > -Aaron
> > _______________________________________________
> > New York PHP Community Talk Mailing List
> > http://lists.nyphp.org/mailman/listinfo/talk
> >
> > NYPHPCon 2006 Presentations Online
> > http://www.nyphpcon.com
> >
> > Show Your Participation in New York PHP
> > http://www.nyphp.org/show_participation.php
> >
>
>
> --
> the Blog: http://www.utopiaparkway.com
> the Karma: http://www.coderswithconscience.com
> the Projects: http://flickr.com/photos/86842405@N00/
> the Store: http://astore.amazon.com/httpwwwutopic-20
>


-- 
the Blog: http://www.utopiaparkway.com
the Karma: http://www.coderswithconscience.com
the Projects: http://flickr.com/photos/86842405@N00/
the Store: http://astore.amazon.com/httpwwwutopic-20



More information about the talk mailing list