Yipes, grep -r 'foo' * [or something like that!] :-) ed
On 8/16/07, Aaron Fischer <[EMAIL PROTECTED]> 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/[EMAIL PROTECTED]/ the Store: http://astore.amazon.com/httpwwwutopic-20 _______________________________________________ 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