Поиск по файлам на php
Реализация поиска по файлам на PHP. Например, если на Вашем сайте есть несколько html-страниц, и Вы хотите сделать поиск по ним. В этой статье мы разберём, как это делается.Вот функция, которая принимает директорию, а выводит названия файлов, в которых найдены совпадения, а также количество совпадений:
function searchFiles($dir,$search){
$files=glob($dir."/*.html");//Получаем все html-файлы из директории
$results=array();//Создаём массив для результатов поиска
for($i=0;$i<count($files);$i++){
/*Перебираем все полученные файлы*/
$str=strip_tags(file_get_contents($files[$i]));//Помещаем содержимое файлов в переменную, предварительно убрав все html-теги
$count=substr_count($str,$search);//Ищем количество вхождений искомой строки в файл
if($count)$results[$files[$i]]=$count;//Если хотя бы 1 вхождение найдено, то добавляем файл с количеством вхождений в массив результатов
}
return$results;//Возвращаем результат
}
$results=searchFiles(".","ABC");//Ищем файлы в текущей директории, в которых входит строка "ABC"
print_r($results);//Выводим массив
?><?
Вот такой простой скрипт поиска по файлам на PHP. Безусловно, он тривиален и, почти наверняка, Вам придётся его подстраивать под Вашу задачу, но как основу его можно использовать. И обратите внимание, что тут есть задатки релевантного поиска, поскольку ищутся не просто файлы, в которых есть искомая строка, но ещё и сохраняется количество вхождений. В результате, отсортировав массив по количеству вхождений, можно вывести пользователю результат поиска с сортировкой по релевантности.