создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

Поиск по файлам на 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. Безусловно, он тривиален и, почти наверняка, Вам придётся его подстраивать под Вашу задачу, но как основу его можно использовать. И обратите внимание, что тут есть задатки релевантного поиска, поскольку ищутся не просто файлы, в которых есть искомая строка, но ещё и сохраняется количество вхождений. В результате, отсортировав массив по количеству вхождений, можно вывести пользователю результат поиска с сортировкой по релевантности.

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting