Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Задача по индексации
Форумы портала PHP.SU » » Вопросы новичков » Задача по индексации

Страниц (1): [1]
 

1. newrenegade - 20 Октября, 2011 - 17:19:18 - перейти к сообщению
Доброго времени суток, уважаемые. Вопрос от новичка:

Есть сервер с Апач2.2+ПХП5. Нужно организовать поиск по директориям. Мои гениальные юристы втихаря сканили договора всей фирмы (где то 35 гигов тифовских файлов) с надеждой на то, что к этой базе будут иметь доступ все кураторы через сайт.
Ума не приложу как организовать доступ с помощью PHP. По ФТП? - нет возможности поиска по номерам договоров, по названию. Не пойдет.

Можно ли как то проиндексировать все файлы, так, чтобы по форме юзер набивал номер договора - ему выдавалась ссылка.

Попробовал - http://feng1[dot]fatal[dot]ru/phprusearch/readme[dot]html - бесполезно, виснет при индексации.

Заранее благодарен за любую помощь.
2. DlTA - 20 Октября, 2011 - 17:35:18 - перейти к сообщению
newrenegade пишет:
Попробовал - http://feng1[dot]fatal[dot]ru/phprusearch/readme[dot]html - бесполезно, виснет при индексации.

оно и понятно
readme.html пишет:
Подходит для большинства малых и средних сайтов (обрабатывает сайты объемом порядка 10Mb)
newrenegade пишет:
где то 35 гигов тифовских файлов


правильно понял, что на входе есть немерянная куча файлов и вам нужен поиск по части имени файл
или как?
3. newrenegade - 20 Октября, 2011 - 17:45:15 - перейти к сообщению
DlTA пишет:
newrenegade пишет:
Попробовал - http://feng1[dot]fatal[dot]ru/phprusearch/readme[dot]html - бесполезно, виснет при индексации.

оно и понятно
readme.html пишет:
Подходит для большинства малых и средних сайтов (обрабатывает сайты объемом порядка 10Mb)
newrenegade пишет:
где то 35 гигов тифовских файлов


правильно понял, что на входе есть немерянная куча файлов и вам нужен поиск по части имени файл
или как?


Абослютно верно. По самому тифу искать не надо, нужно искать только по вложенным папкам и именам файлов(учитывая кириллицу). Понимаю, да, дебилизм, но выхода нет. То есть есть куча договоров в несколько тысяч файлов пронумерованных, с названиями, юзер вводит в поиск номер 1100 - ему выдается ссылка на скачивание этого тифовского файла.
4. illy - 20 Октября, 2011 - 19:09:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. номер без пробелов
  3. <form method=post>
  4. <input name=find type=text>
  5. <input type=submit value=Найти>
  6. </form>
  7. <?PHP
  8. if(empty($_POST['find']) || !is_numeric($_POST['find'])){exit;}
  9.  
  10. $document_root='.'; // папка поиска
  11. $type='tif'; // формат файла (найдёт tif и tiff)
  12.  
  13. $find=$_POST['find'];
  14. function sc($r = '../',$find,$type){
  15. $fs=array('fs'=>array(),'dirs'=>array());
  16. $ds=array();
  17. $lt=$r[strlen($r)-1];
  18. $r=($lt=='\\' || $lt=='/') ? $r : $r.DIRECTORY_SEPARATOR;
  19. $ds[]=$r;
  20. while(sizeof($ds)){
  21. $dir=array_pop($ds);
  22. if($h=opendir($dir)){
  23. while(false!==($f=readdir($h))){
  24. if($f=='.' || $f=='..'){continue;}
  25. $f=$dir.$f;
  26. if(is_dir($f)){
  27. $p=$f.DIRECTORY_SEPARATOR;
  28. array_push($ds,$p);
  29. $fs['dirs'][]=$p;
  30. }
  31. elseif(is_file($f) && preg_match('#'.$find.'\.'.$type.'#i',$f)){
  32. echo '<a href=\''.$f.'\'>'.$f.'</a><br>';
  33. $fs['fs'][]=$f;
  34. }
  35. }
  36. }
  37. }
  38. return $fs;
  39. }
  40.  
  41. $structure=sc($document_root,$find,$type);
  42.  
  43. ?>
  44.  
5. newrenegade - 21 Октября, 2011 - 06:00:04 - перейти к сообщению
illy

Благодарю. По папке ищет.

1. Можно ли искать не только по папке но и по вложенным?
2. Есть ли возможность поиска не только по номеру но и по имени файла? По кириллице.
Например "сметы"

 

Powered by ExBB FM 1.0 RC1