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

Форум PHP

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

 

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

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

тема: создание индекса для поиска

Сообщения:  [1-10]   [11-15] 

 
 автор: xx77   (17.09.2008 в 16:55)   письмо автору
2 Кб
 
   для: xx77   (17.09.2008 в 15:47)
 

прикрепил.
наверное здесь есть одна оплошность с моей стороны --
применение strtolower отдельно к каждому елементу массива
,вместо применения ко всему тексту сразу

UPD//
поправлял "17.12" )

  Ответить  
 
 автор: xx77   (17.09.2008 в 15:47)   письмо автору
 
   для: Лена   (17.09.2008 в 14:38)
 

ой ,)) и правда не работало во вложенных папках :)
неправильно проверялось является-ли имя папкой
там вместо if(is_dir($file)) надо-было if(is_dir($dir . '/' . $file))

и вызывать функцию в склучае с ./content/ надо go_to_dir('./content');

ещё теперь вот никак не осмыслю как-же можно туда впихнуть предложенное мной split('\W+', $contents)
;)

  Ответить  
 
 автор: Лена   (17.09.2008 в 14:38)   письмо автору
 
   для: Лена   (17.09.2008 в 14:07)
 

Поняла. В рекурсии еще уровень вложения надо указывать, тогда должно выводиться. Вечером попробую.

  Ответить  
 
 автор: Лена   (17.09.2008 в 14:07)   письмо автору
 
   для: xx77   (16.09.2008 в 18:09)
 

Михаил, спасибо вам большое.
Есть две нерешенные проблемы.
Одна касается случая, когда надо индексировать не текущую директорию. От текущей к ней путь такой:
$indexdir = "./content/"; //индексируемая директория
Если так, то ничего не индексируется.
Вторая проблема такая. Если индексируемая директория - текущая, то индексируются только директории, в нее вложенные, например: ./configs,./counter, ./lightbox, директории, расположенные глубже не индексируются, например, типа: ./configs/map/, ./configs/advise/ и т.д. Как это сделать?
И последнее. Не вижу разницы между array_filter() и array_walk () - они же одно и то же делают, проходятся по элементам массива, применяют к ним функцию

  Ответить  
 
 автор: xx77   (16.09.2008 в 18:09)   письмо автору
 
   для: xx77   (16.09.2008 в 17:49)
 

UPD//
наверное там лучше было-бы split('\W+', $contents);
вместо _replace и explode

  Ответить  
 
 автор: xx77   (16.09.2008 в 17:49)   письмо автору
1.9 Кб
 
   для: Лена   (16.09.2008 в 16:01)
 

у меня такой индексатор частенько вылетает с предупреждением о превышении размера используемой памяти , наверное для больших файлов , fread($fd, filesize($fname)) негодится.
а так работает

  Ответить  
 
 автор: Лена   (16.09.2008 в 16:01)   письмо автору
 
   для: Trianon   (16.09.2008 в 15:35)
 

Спасибо. Не работает.

  Ответить  
 
 автор: Trianon   (16.09.2008 в 15:35)   письмо автору
 
   для: Лена   (16.09.2008 в 13:20)
 

Вы теряете результаты рекурсивных вызовов. надо изменить строку вызова так, чтобы она дописывала результат.
            $fullfile .= go_to_dir($dir . "/" . $file);

  Ответить  
 
 автор: Лена   (16.09.2008 в 13:20)   письмо автору
2.2 Кб
 
   для: Trianon   (16.09.2008 в 09:54)
 

Возвращаю значение функции go_to_dir(), результат ее действия сохраняю в $fullfile , чтобы потом все записать в файл. Не записывается, файл пустой. Пробовала вывести $fullfilе - ничего
$fullfile = go_to_dir($indexdir);
echo $fullfile;

Значит, не правильно функция работает?

  Ответить  
 
 автор: Trianon   (16.09.2008 в 09:54)   письмо автору
 
   для: Лена   (16.09.2008 в 09:47)
 

в основном коде у Вас нигде переменной fullfile ничего не присваивается.
Одноименная локальная переменная в функкции go_to_dir() -
а) это вообще другая переменная
б) с каждым очередным файлом из каталога её предыдущее значение теряется - перезаписывается новым
в) в конце обработки каждого каталога по достижении конца функции она прекращает существование.
А return в функции нет.

  Ответить  

Сообщения:  [1-10]   [11-15] 

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

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