| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Поиск по HTML-документам Писать поиск по HTML-документам будет легче, так как основы релевантности мы уже обсудили выше и теперь процесс отбора нужных файлов в хэш можно будет просто скопировать. Выглядеть наша функция будет так: function query_html ($dir, $q_num, $q_array) Как параметры она хочет увидеть директорию (папку), в которой производить поиск (поиск по подпапкам не предусмотрен), запрос пользователя и количество слов в запросе пользователя. После того, как на руках имя папки, с которой нужно работать, эту папку следует открыть. $current_dir=opendir($dir); Таким образом, переменной $current_dir присваивается указатель на открытую папку. Теперь для пробежки по всем файлам в папке мы можем использовать функцию readdir, которая при каждом обращении будет перемещаться вниз по папке, возвращая имя файла. Единственные файлы, которые нам не нужны - это . и .., юниксовские команды для перехода вверх на одну директорию и в корень сервера. Их мы в цикле проигнорируем. while ($current_file=readdir($current_dir)) К концу цикла массив $filearray содержит все строки из файла, над которым работается в данный момент. Для обсчета релевантности воспользуемся теми же переменными, что и в функции query_table. $relevancy=0; Разница в переменных в этот раз состоит в том, что в $mypage мы храним имя файла, а не его номер, как это было в случае с таблицей, а переменная $mycontent теперь содержит строку, в которой уместилось все содержание файла - именно это для нас сделала функция implode. Следующие строки кода скопированы напрямую из предыдущей функции, так как подсчет релевантности и сортировка хэша здесь ничем не отличаются. for ($d=0; $d<$q_num; $d++) При желании этот кусок кода наверняка даже можно выделить в отдельную функцию, прописав вызовы в query_table и query_html. [Назад][Содержание][Вперед] |
|
| ||||||||||||||||
|