debugging = true; function go_to_index($dir, $word){ $handle = opendir($dir); $arr = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $fr = fopen ($dir . "/" . $file, "r"); flock($fr, LOCK_EX); $r = fread ($fr, filesize ($dir . "/" . $file)); define("RUS_KEY","йцукенгшщзхъфывапролджэячсмитьбюёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ"); $num=str_word_count($r,2,RUS_KEY); $count = array_count_values ($num); //существует ли в массиве ключ if(array_key_exists($word, $count)){ //число релевантности слова в текстовом файле $value = $count[$word]; /*составление массива чисел, релевантность слова в каждом текст. файле данной директории*/ $number = $value . "|" . $dir . "/" . $file . "
"; //собираем все $number в массив array_push($arr, $number); } flock($fr, LOCK_UN); fclose($fr); } } closedir($handle); return $arr; } if(!isset($id)){ $word = "быстро"; //слово, которое вводит пользователь $indexdir = "./index"; //директория, где лежит индекс $arr = go_to_index($indexdir, $word); //сортируем по убыванию полученный массив array_reverse($arr); foreach($arr as $one){ //удаляем из строки лишнее, оставить только название //получаем массив названий файлов preg_match_all("#\d+\|\./index/(.+?).txt#i",$one,$file); unset($file[0]); //print_r($file[1]); //Выбрать из базы id статьи $sql = "SELECT * FROM `texts`"; $res = mysql_query($sql, $link); $quest = array(); while ($row = mysql_fetch_assoc($res)){ $quest[] = $row; $id = $row['id']; } $sec_arg = array(); $file_name = array(); while (list($k, $v) = each ($file[1])) { $file_name[] = $v; foreach($quest as $qqq){ //названия файлов имеют формат фыва.txt, отсекаем расширение $base_name = strtok($qqq['main_text'], "."); //если название файла = названию файла в базе, //добавляем в массив его id if($base_name == $v) array_push($sec_arg, $qqq['id']); } } //print_r($sec_arg); if(count($file[1]) == count($sec_arg)) $c = array_combine($file[1], $sec_arg); //связываем название файла с его id foreach($c as $key => $value){ print "" . $key . "
"; } } //$smarty->assign("link", $c); //$smarty->display("go_index.tpl"); }else{ $id = intval($_GET['id']); //найти id статьи в базе $sql = "SELECT * FROM `texts` WHERE `id` = $id"; $result = mysql_query($sql, $link); while ($row = mysql_fetch_assoc($result)){ print_r($row); $name = $row['main_text']; $name = strtok($name, "."); $mod = $row['id_mod']; switch($mod){ case 0: $folder = "menu"; break; case 11: $folder = "advices"; break; case 13: $folder = "quest"; break; case 4: $folder = "contact"; break; } //открыть нужный текст в нужной папке $filename = "content/" . $folder . "/" . $name; $fp = fopen($filename, "r"); flock($fp, LOCK_EX); $text = fread($fp, filesize($filename)); $head = strtok($text, "\n"); $text = substr($text, strpos($text, ".")+1); $text = nl2br($text); flock($fp, LOCK_UN); fclose($fp); } $smarty->assign("a", $head); $smarty->assign("b", $text); $smarty->display("go_index1.tpl"); } ?>