Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Поиск по файлам

Сообщения:  [1-3] 

 
 автор: Лена   (28.12.2010 в 14:59)   письмо автору
 
   для: levsha   (28.12.2010 в 07:56)
 

Перед проведением поиска по текстовым файлам надо еще написать скрипт, который проиндексирует файлы и уберет из них "мусор".
Скрипт должен пройтись по каждому файлу, где вы планируете искать какие-либо слова, и убрать из этого файла все лишнее - слова меньше 3-х букв, повторы слов в тексте, служебные символы типа .,/ и т.д. - символы, которые никогда никто не ищет.

Вариант такого файла(файлов) приводился когда-то в этой теме - http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=57943

Проиндексированные файлы можно хранить в отдельной папке - по ним и будет проводиться поиск.

  Ответить  
 
 автор: lightning.say   (28.12.2010 в 11:38)   письмо автору
 
   для: levsha   (28.12.2010 в 07:56)
 

у меня такое предложение...

форма:

<form action="searchscript.php" method="post">

<table>

<tr><td>Искомая строка:</td><td><input type="text" name="text" size="40" value=""></td></tr>

<tr><td>Имя корневой директории:</td><td><input type="text" name="dirname" size="40" value=""></td></tr>

</table><br><br>

<input type="submit" name="submit" value="Искать">

</form>


обработчик, файл searchscript.php:

<?php
  
// Рекурсивная функция - спускаемся вниз по каталогу 

  
function scan_dir($dirname
  { 
    
// Объявляем искомую переменную глобальной
    
GLOBAL $text;
    
// Открываем текущую директорию 
    
$dir opendir($dirname); 
    
// Читаем в цикле директорию 
    
while (($file readdir($dir)) !== false
    { 
      
// Если файл обрабатываем его содержимое 
      
if($file != "." && $file != ".."
      { 
        
// Если имеем дело с файлом - осуществляем поиск
        
if(is_file($dirname."/".$file)) 
        { 
          
// Читаем содержимое файла 
          
$content file_get_contents($dirname."/".$file); 
    
//Проверяем если ли в содержимом файла искомая строка
    
$str_count substr_count($content$text); // возвращает количество вхождений искомой строки в содержимом файла
      
if($str_count != 0)
            {
            echo 
$dirname."/".$file."<br>"//выводим адрес файла в котором присутствует искомая строка        
            
}
        } 
        
// Если перед нами директория, вызываем рекурсивно 
        // функцию scan_dir 
        
if(is_dir($dirname."/".$file)) 
        { 
          echo 
$dirname."/".$file."<br>"
          
scan_dir($dirname."/".$file); 
        } 
      } 
    } 
    
// Закрываем директорию 
    
closedir($dir); 
  }

  
$text $_POST['text']; // Искомая строка
  
$dirname $_POST['dirname'];
if (
$text != "" && $dirname != "")
  {
  
scan_dir($dirname);  // Вызов рекурсивной функции
  
}
else echo 
'имеются незаполненные поля!';

?>

  Ответить  
 
 автор: levsha   (28.12.2010 в 07:56)   письмо автору
 
 

Добрый день, уважаемые форумчане! Столкнулся с такой задачей как поиск по файлам. Допустим, на сервер выкладываются текстовые файлы. В базу данных они заноситься не должны.
Но нужно, чтобы осуществлялся поиск по ним. То есть, есть форма на сайте, пользователь что-то вбил, это что-то ищется по всем файлам. У кого-нибудь есть предложения?
Zend_Search_Lucene не подойдет.

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования