php class

I was hoping you could help me out? Is it possible to add the ability to choose multiple directions to search within? I can have not figured out how to build the array with the form, something todo with [] in the value.

Any help would be appericated.

Index.php

<html>
<head>
<title>DNS Search</title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<script type="text/javascript">
var ID_Message = new Array();
ID_Message["search"] = "Wait, Wait..... Wait.  You need to search for something?";
function CheckAllRequiredFields() {
var message = new Array();
for(var k in ID_Message) {
   if(!document.getElementById(k).value.length) { message.push(ID_Message[k]); }
   }
if(message.length) {
   alert(message.join("\n\n"));
   return false;
   }
return true;
}
</script>
<body>
<form method="post" action="test.php" onSubmit="return CheckAllRequiredFields()">
  <p class="big">DNS Log Search  </p>
  <p>
    <input type="text" size="75" maxlength="100" name="search">
    <br>
  </p>
  <table width="451" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>
        <div align="left">
          <input type="checkbox" name="logform[]" value="/opt/coolstack/apache2/htdocs/dnslog/logs/h/"> 
          a
</div></td>
      <td>
        <div align="left">
          <input type="checkbox" name="logform[]" value="/opt/coolstack/apache2/htdocs/dnslog/logs/b/"> 
          b
</div></td>
    </tr>
  </table>
  <br />
<input type="submit" value="search" name="submit">
</form>
</body>
</html>

test.php

<html>
<head>
<title>DNS Search</title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<p class="big">DNS Log Search  </p>
<?php
$logform = $_POST["logform"];
$search = $_POST["search"];
/** 
 * FileSystemStringSearch 
 * Searches a file or directory of files for a search string 
 */ 
class FileSystemStringSearch 
{ 
    //  MEMBERS 
 
    /** 
     * @var string $_searchPath path to file/directory to search 
     */ 
    var $_searchPath; 
 
    /** 
     * @var string $_searchString the string to search for 
     */ 
    var $_searchString; 
 
    /** 
     * @var array $_searchResults holds search result information 
     */ 
    var $_searchResults; 
 
    //  CONSTRUCTOR 
 
    /** 
     * Class constructor 
     * @param string $searchPath path to file or directory to search 
     * @param string $searchString string to search for 
     * @return void 
     */ 
    function FileSystemStringSearch($searchPath, $searchString) 
    { 
        $this->_searchPath = $searchPath; 
        $this->_searchString = $searchString; 
        $this->_searchResults = array(); 
    } 
 
    //  MANIPULATORS 
 
    /** 
     * Checks path is valid 
     * @return bool 
     */ 
    function isValidPath() 
    { 
        if(file_exists($this->_searchPath)) { 
            return true; 
        } else { 
            return false; 
        } 
    } 
 
    /** 
     * Determines if path is a file or directory 
     * @return bool 
     */ 
    function searchPathIsFile() 
    { 
        // check for trailing slash 
        if(substr($this->_searchPath, -1, 1)=='/' || 
           substr($this->_searchPath, -1, 1)=='\\') { 
           return false; 
        } else { 
           return true; 
        } 
    } 
 
    /** 
     * Searches given file for search term 
     * @param string $file the file path 
     * @return void 
     */ 
    function searchFileForString($file) 
    { 
        // open file to an array 
        $fileLines = file($file); 
 
        // loop through lines and look for search term 
        $lineNumber = 1; 
        foreach($fileLines as $line) { 
            $searchCount = substr_count($line, $this->_searchString); 
            if($searchCount > 0) { 
                // log result 
                $this->addResult($file, $line, $lineNumber, $searchCount); 
            } 
            $lineNumber++; 
        } 
    } 
 
    /** 
     * Adds result to the result array 
     * @param string $lineContents the line itself 
     * @param int $lineNumber the file line number 
     * @param int $searchCount the number of occurances of the search term 
     * @return void 
     */ 
    function addResult($filePath, $lineContents, $lineNumber, 
$searchCount) 
    { 
        $this->_searchResults[] = array('filePath' => $filePath, 
                                        'lineContents' => $lineContents, 
                                        'lineNumber' => $lineNumber, 
                                        'searchCount' => $searchCount); 
    } 
 
    /** 
     * Takes a given string (usually a line from search results) 
     * and highlights the search term 
     * @param string $string the string containing the search term(s) 
     * @return string 
     */ 
    function highlightSearchTerm($string) 
    { 
        return str_replace($this->_searchString, 
                           '<strong>'.$this->_searchString.'</strong>', 
                           $string); 
    } 
 
    /** 
     * Recursively scan a folder and sub folders for search term 
     * @param string path to the directory to search 
     * @return void 
     */ 
    function scanDirectoryForString($dir) 
    { 
        $subDirs = array(); 
        $dirFiles = array(); 
 
        $dh = opendir($dir); 
        while(($node = readdir($dh)) !== false) { 
            // ignore . and .. nodes 
            if(!($node=='.' || $node=='..')) { 
                if(is_dir($dir.$node)) { 
                    $subDirs[] = $dir.$node.'/'; 
                } else { 
                    $dirFiles[] = $dir.$node; 
                } 
            } 
        } 
 
        // loop through files and search for string 
        foreach($dirFiles as $file) { 
            $this->searchFileForString($file); 
        } 
 
        // if there are sub directories, scan them 
        if(count($subDirs) > 0) { 
            foreach($subDirs as $subDir) { 
                $this->scanDirectoryForString($subDir); 
            } 
        } 
    } 
 
    /** 
     * Run the search 
     * @return void 
     */ 
    function run() 
    { 
        // check path exists 
        if($this->isValidPath()) { 
 
            if($this->searchPathIsFile()) { 
                // run search on the file 
                $this->searchFileForString($this->_searchPath); 
            } else { 
                // scan directory contents for string 
                $this->scanDirectoryForString($this->_searchPath); 
            } 
 
         } else { 
 
            die('FileSystemStringSearch Error: File/Directory does not 
exist'); 
 
         } 
    } 
 
    //  ACCESSORS 
    function getResults() 
    { 
        return $this->_searchResults; 
    } 
 
    function getResultCount() 
    { 
        $count = 0; 
        foreach($this->_searchResults as $result) { 
            $count += $result['searchCount']; 
        } 
        return $count; 
    } 
 
    function getSearchPath() 
    { 
        return $this->_searchPath; 
    } 
 
    function getSearchString() 
    { 
        return $this->_searchString; 
    } 
}  
$searcher = new 
FileSystemStringSearch("$logform", "$search");
$searcher->run();
if($searcher->getResultCount() > 0) { 
    echo('<p>Searched for string 
<strong>"'.$searcher->getSearchString().'":</strong></p>'); 
    echo('<p>Search term found <strong>'.$searcher->getResultCount().' times.</strong></p>');  
echo('<ul>'); 
     foreach($searcher->getResults() as $result) { 
echo('<li>'.$searcher->highlightSearchTerm($result['lineContents']).'</li>'); 
        }
echo('</ul>'); 
} else {
    echo('<p>Searched "'.$searcher->getSearchPath().'" for string 
<strong>"'.$searcher->getSearchString().'":</strong></p>'); 
    echo('<p>No results returned</p>'); 
}  
?>
</html>