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");
}
?>