//=================================================================================== // site-search.php = Site Search Script - V1.51 (c) TGH 19/7/2003 //----------------------------------------------------------------------------------- // This fine script is offered as CONTRIBUTION-WARE: // - For personal use, send me an email and let me know how you get on. // - For commercial use, make a donation - the amount is up to you. //-------------------------------------------------------------------------------------------- // To contribute to The Webmaster's Bureau, or pay for commercial usage of this script see: // http://web-bureau.com/contribute.php //============================================================================================ if (isset($_REQUEST['search_term'])) $search_term = $_REQUEST['search_term']; //------------------------------------------------------------------- // Function: search_dir() - goes thru all files in a directory. // If files - they're searched for the search term. If directories // they're searched with this function - it's RECURSIVE! //------------------------------------------------------------------- function search_dir () { global $cur_path, $dir_depth, $matches; if ($matches > 100) return; //---------------------------------------------------------- // create a string $s_dir containing the full current path. //---------------------------------------------------------- $s_dir=''; for ($c=0; $c<=$dir_depth; $c++) $s_dir .= $cur_path[$c]; //-------------------------------------------------------------------- // Open the directory, and read all the files from it one by one... //-------------------------------------------------------------------- //if (!is_readable($s_dir)) return; $dhandle=opendir($s_dir); while ($file = readdir($dhandle)) { //------------------------------------------------- // Ignore the 'this' and 'parent' directory items //------------------------------------------------- if (($file!='.') && ($file!='..')) { //------------------------------------------------------------------------- // if the file is a regular file - check it for the search text. // Only check files with a .php extension - this is all there is on TWB! //------------------------------------------------------------------------- if (is_readable($s_dir.$file)) { if (is_file($s_dir.$file)) { //---------------------------------------------------------- // To exclude files - uncomment and complete the line below //---------------------------------------------------------- // if ($file=='FileToIgnore' || $file=='FileToIgnore2') continue; $file_ext = substr($file, strlen($file)-3, 3); if ($file_ext == 'php') search_file($s_dir.$file); } //---------------------------------------------------------------------------------------- // if the file is a directory - add it to the current_path and call this function again. //---------------------------------------------------------------------------------------- elseif (is_dir($s_dir.$file)) { //---------------------------------------------------------------- // To exclude directories - uncomment and complete the line below //---------------------------------------------------------------- // if ($file=='DirToIgnore' || $file=='DirToIgnore2') continue; $cur_path[++$dir_depth] = ($file."/"); search_dir(); $dir_depth--; } } } } } // End of function. //---------------------------------------------------------------- // Function: search_file() - searches a file for the search term //---------------------------------------------------------------- function search_file ($file) { global $cur_path, $dir_depth, $search_term, $results, $r_text, $r_title, $matches; //---------------------------------------------------------- // create a string $s_dir containing the full current path //---------------------------------------------------------- $s_dir=""; for ($c=0; $c<=$dir_depth; $c++) $s_dir .= $cur_path[$c]; //----------------------------------------------------------------------------------------- // Open the file, read it's contents into a variable $f_data. Create a lowercase version so // the search is case insensitive, then check that for the search term. //----------------------------------------------------------------------------------------- $f_size = filesize($file); if ($f_size>100000) $f_size=100000; $f_handle = fopen($file, "r"); $f_data = fread($f_handle, $f_size); //-------------------------------------------------------------------- // If the file contains 'SSIGNORE' - Don't Search it. This prevents // scripts and other non-content files from being searched. //-------------------------------------------------------------------- if (strpos($f_data, 'SSIGNORE')!==FALSE) return; $f_dlc = strtolower($f_data); $t_text = ""; $in_tag = 0; if ($text = strstr(strip_tags($f_dlc), $search_term)) { $results[$matches] = $file; $text = substr($text, 0, 500); $text = str_replace ($search_term, "".$search_term. "", $text); $r_text [$matches] = "...". $text. "..."; $t_start = strpos ($f_dlc, " Site Search
$matches Matches. |