2) ? strtolower($item) : ''; } function go_to_dir($dir){ global $ifd, $extens, $closeddirs; // дескриптор ,расширения , закрытые папки $handle = opendir($dir); while (false !== ($file = readdir($handle))) { if (is_dir($dir . '/' . $file) && !in_array($file, $closeddirs) && $file!="index"){ // если папка, и если имени нет в массиве запрещённых go_to_dir($dir . "/" . $file); } else if ( in_array(strrchr($file, '.'), $extens) && (($fsize = filesize ($dir."/".$file)) > 0 && $fsize < 2000000)) { // если файл, проверяется есть ли в массиве $extens такое расширение // проверку размера файла можно убрать если нужно $fd = fopen ($dir. '/' . $file, "r"); flock($fd, LOCK_EX); // разбиваем на слова, убираем слова короче 3х букв // убираем повторяющиеся слова $contents = split('[[:punct:][:space:]]+', fread($fd, $fsize)); array_walk($contents, 'sw'); $contents=array_unique($contents); $indexfile = $dir . "/index/". $file; //файл, в котором будет лежать индекс $ifd = fopen($indexfile, "w"); flock($ifd, LOCK_EX); fwrite( $ifd , $dir. '/' .$file . '|' . implode (" ", $contents) . "\n"); // Запись echo $dir. '/' . $file . " проиндексирован
"; flush(); flock($ifd, LOCK_UN); fclose($ifd); } } closedir($handle); } //go_to_dir() $indexdir = array("./content/menu","./content/advices","./content/contact","./content/quest"); //индексируемые директории foreach($indexdir as $ind){ go_to_dir($ind); } //echo '
'; ?>